LINUX.ORG.RU

Переключение станций без паузы

 , ,


0

1

Слушаю стрим радио с помощью скриптика использующего mpv-плеер. Подскажите как реализовать бесшовное звучание при переключении станций. Сейчас использую просто задержку MPV_PID=$(pgrep -f "mpv"); if [ "$MPV_PID" != "" ]; then ( sleep 2; kill -s KILL $MPV_PID ) & fi; mpv $STREAMURL & но некоторые станции открываются быстро , другие с задержкой в основном https.

Пробовал с помощью wait mpv $STREAMURL & process_id=$!; wait $process_id; [ "$MPV_PID" != "" ] && kill -s KILL $MPV_PID , но у меня не работает

А если плейлист создать для этого, то как себя ведёт?

Bfgeshka ★★★★★
()

Ну, дак открытие станции никак не ускорить. Там же вобще не предсказуемо, сколько будет происходить установление соединения и т.д.

Если mpv что-то пишет в stdout при начале воспроизведения, то может к этому приципиться. Или, может, его запускать с input-ipc-server= и когда он ответит на команду «get_property», тогда и килять предыдущий.

mky ★★★★★
()
Ответ на: комментарий от mky

Через input-ipc-server не получилось у меня реализовать, не шарю )). Пробовал так

while  true; do if [ "$MPV_PID" != "" ] && [ "$(echo '{ "command": ["get_property", "playback-time"] }' | socat - /tmp/mpv-output  | grep success)" ]; then   kill -s KILL $MPV_PID; break; fi ; sleep 0.2; done

Получилось проще чем ожидал

mpv $STREAMURL   > /root/mpv-output  &  
inotifywait -e  close_nowrite  /root/mpv-output  &&  [ "$MPV_PID" != "" ] &&  kill -s KILL $MPV_PID
nik120s
() автор топика

[теоритически] коммутировать звук. Вкл. mpv заранее, с выкл. звуком. В нужное время на активном mpv звук выкл, а на нужном включать

futurama ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.