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