LINUX.ORG.RU

mplayer+радио+iconv+костыль

 ,


0

2

При прослушивании радио через mplayer теги отображаются либо вопросами, либо крякозябами. Естественно возникает желание применить iconv к выводу mplayer. Но iconv не производит преобразования, пока не завершён ввод. Почему он так устроен, учитывая что основное его предназначение - работа с потоками, мне неизвестно. Это приводит к необходимости «костыля». «Костыли», предлагаемые в сети - это просто кошмар, стрельба из пушки по воробьям. Предлагаю «костыль», который делает то, что по идее должен делать сам iconv, делить поток на строки и каждую строку обрабатывает отдельно:

$ cat mplayer-radio-cp1251.sh 
#!/bin/bash

rurl="http://radio-tochka.com:4570"
tcp="cp1251"
echo "Radio URL: $rurl"
echo "Code page: $tcp"
mplayer "$rurl" 2>&1 | while read tstr; do echo "$tstr" | iconv -f "$tcp"; done;

Попытка прикрутить `enca -c` не увенчалась успехом.

Deleted

криво же.

mplayer "$FM" |& while read -r line;  do if grep "ICY" <<< "$line" &> /dev/null; then iconv -f cp1251 <<< "$line"; else echo "$line"; fi; done
ass ★★★★
()
Ответ на: комментарий от ass

Я ставил задачу не «выборочной», а «построчной» обработки, только чтобы преодолеть особенность iconv. Ваш вариант «выборочной» обработки конечно логичнее, но при необходимости я сходу его не наберу, потребуется время на копание в дебрях памяти. Свой же вариант наберу сразу же.

По логике ваш вариант выше. По простоте - мой.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.