imho.ws |
|
06.08.2015, 12:53 | # 1 |
Administrator
Регистрация: 06.05.2003
Адрес: Московская Подводная Лодка
Пол: Male
Сообщения: 12 037
|
Как отловить пропадание стрима?
Мы тут с Caesar'ем уж вторую неделю медитируем:
Имеем: "Малину" (raspberry pi, ОС - Rasbian (Debian под arm)) на которой mplayer-ом воспроизводится поток онлайн-радио. Нужно каким-то образом отловить момент когда этот поток прервётся, чтоб дать команду на дальнейшее действие (переключение). Изначально была мысль пинговать что-либо (например гугль), и привязываться на его отвал. Отказались по причине того, что гугль вполне может благоденствовать, а передающий сервер - лежать. По той же причине не подходит и пинг непосредственно вещающего серванта: сам серв может быть онлайн, а вещание - свалиться. Не кажется идеальным и решение мониторить наличие процесса mplayer: он хоть и отваливается через некоторое время отсутствия потока, но делает это не сразу и не очень красиво. Чутьё подсказывает что есть простое и изящное решение. Может есть у кого-нибудь мысли? ps. если чего упустил - Caesar дополнит.
__________________
все "спасибы" - в приват и в репутацию! не засоряйте форум!!!! ~~~~~~~~~~~~~~~~~~~~~~ The time has come it is quite clear, our antichrist is M.M.
|
06.08.2015, 17:52 | # 2 |
Котозавр
Регистрация: 15.04.2003
Адрес: Russia, Tomsk
Пол: Male
Сообщения: 1 317
|
Плейер Audacious имеет в своём составе утилитку audtool.
Команда audtool current-song выдаёт в stdout строку названия текущего трека. Не знаю, есть ли в вашем репозитарии этот плейер, но такой вариант вполне жизнеспособен.
__________________
Паранойю у админов лечить нельзя, надо лишь следить, чтобы развивалась в нужном направлении |
06.08.2015, 20:17 | # 3 |
Junior Member
Регистрация: 26.09.2003
Пол: Male
Сообщения: 59
|
Спасибо, проверил вариант с утилитой audtool. Вариант мог бы быть рабочим, но, к сожалению, время обновления информации, которая выдается по команде audtool --current-song велико. Т.е. допустим вещание потока прервалось, но пока сам audacious не выдаст ошибку потока, audtool будет выдавать информацию, что все нормально. В таком случае проще мониторить наличие процесса mplayer или audacious. Пытаемся найти вариант (в идеале), чтоб отследить отключение потока еще до полного опустошения буфера плейера.
|
07.08.2015, 07:26 | # 4 |
Котозавр
Регистрация: 15.04.2003
Адрес: Russia, Tomsk
Пол: Male
Сообщения: 1 317
|
Так... Что означает "отключение потока"?
Если пропадание коннекта к серверу - то lsof -i :номер-порта покажет текущее состояние коннекта. Другой вариант netstat -np tcp 2>/dev/null | grep .ip-of-the-server | grep ESTABL при возврате пустой строки - аларм.
__________________
Паранойю у админов лечить нельзя, надо лишь следить, чтобы развивалась в нужном направлении |