imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Программы и Операционные системы > Пингвинятник (ОС *NIX)
Опции темы
Старый 06.08.2015, 12:53     # 1
Plague
Administrator
 
Аватар для Plague
 
Регистрация: 06.05.2003
Адрес: Московская Подводная Лодка
Пол: Male
Сообщения: 12 029

Plague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague Демиург
Plague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague ДемиургPlague Демиург
Как отловить пропадание стрима?

Мы тут с Caesar'ем уж вторую неделю медитируем:

Имеем: "Малину" (raspberry pi, ОС - Rasbian (Debian под arm)) на которой mplayer-ом воспроизводится поток онлайн-радио. Нужно каким-то образом отловить момент когда этот поток прервётся, чтоб дать команду на дальнейшее действие (переключение). Изначально была мысль пинговать что-либо (например гугль), и привязываться на его отвал. Отказались по причине того, что гугль вполне может благоденствовать, а передающий сервер - лежать. По той же причине не подходит и пинг непосредственно вещающего серванта: сам серв может быть онлайн, а вещание - свалиться.
Не кажется идеальным и решение мониторить наличие процесса mplayer: он хоть и отваливается через некоторое время отсутствия потока, но делает это не сразу и не очень красиво.
Чутьё подсказывает что есть простое и изящное решение.
Может есть у кого-нибудь мысли?

ps. если чего упустил - Caesar дополнит.
__________________
все "спасибы" - в приват и в репутацию! не засоряйте форум!!!!
~~~~~~~~~~~~~~~~~~~~~~

The time has come it is quite clear, our antichrist is almost already here.
M.M.
Plague вне форума  
Старый 06.08.2015, 17:52     # 2
SinClaus
Котозавр
 
Аватар для SinClaus
 
Регистрация: 15.04.2003
Адрес: Russia, Tomsk
Пол: Male
Сообщения: 1 316

SinClaus Отец (мать) всех ГуруSinClaus Отец (мать) всех ГуруSinClaus Отец (мать) всех ГуруSinClaus Отец (мать) всех ГуруSinClaus Отец (мать) всех ГуруSinClaus Отец (мать) всех ГуруSinClaus Отец (мать) всех ГуруSinClaus Отец (мать) всех ГуруSinClaus Отец (мать) всех ГуруSinClaus Отец (мать) всех ГуруSinClaus Отец (мать) всех ГуруSinClaus Отец (мать) всех ГуруSinClaus Отец (мать) всех ГуруSinClaus Отец (мать) всех ГуруSinClaus Отец (мать) всех ГуруSinClaus Отец (мать) всех ГуруSinClaus Отец (мать) всех Гуру
Плейер Audacious имеет в своём составе утилитку audtool.
Команда audtool current-song выдаёт в stdout строку названия текущего трека. Не знаю, есть ли в вашем репозитарии этот плейер, но такой вариант вполне жизнеспособен.
__________________
Паранойю у админов лечить нельзя, надо лишь следить, чтобы развивалась в нужном направлении
SinClaus вне форума  
Старый 06.08.2015, 20:17     # 3
Caesar
Junior Member
 
Регистрация: 26.09.2003
Пол: Male
Сообщения: 59

Caesar СэнсэйCaesar СэнсэйCaesar СэнсэйCaesar СэнсэйCaesar СэнсэйCaesar СэнсэйCaesar СэнсэйCaesar СэнсэйCaesar СэнсэйCaesar СэнсэйCaesar СэнсэйCaesar СэнсэйCaesar СэнсэйCaesar Сэнсэй
Спасибо, проверил вариант с утилитой audtool. Вариант мог бы быть рабочим, но, к сожалению, время обновления информации, которая выдается по команде audtool --current-song велико. Т.е. допустим вещание потока прервалось, но пока сам audacious не выдаст ошибку потока, audtool будет выдавать информацию, что все нормально. В таком случае проще мониторить наличие процесса mplayer или audacious. Пытаемся найти вариант (в идеале), чтоб отследить отключение потока еще до полного опустошения буфера плейера.
Caesar вне форума  
Старый 07.08.2015, 07:26     # 4
SinClaus
Котозавр
 
Аватар для SinClaus
 
Регистрация: 15.04.2003
Адрес: Russia, Tomsk
Пол: Male
Сообщения: 1 316

SinClaus Отец (мать) всех ГуруSinClaus Отец (мать) всех ГуруSinClaus Отец (мать) всех ГуруSinClaus Отец (мать) всех ГуруSinClaus Отец (мать) всех ГуруSinClaus Отец (мать) всех ГуруSinClaus Отец (мать) всех ГуруSinClaus Отец (мать) всех ГуруSinClaus Отец (мать) всех ГуруSinClaus Отец (мать) всех ГуруSinClaus Отец (мать) всех ГуруSinClaus Отец (мать) всех ГуруSinClaus Отец (мать) всех ГуруSinClaus Отец (мать) всех ГуруSinClaus Отец (мать) всех ГуруSinClaus Отец (мать) всех ГуруSinClaus Отец (мать) всех Гуру
Так... Что означает "отключение потока"?
Если пропадание коннекта к серверу - то lsof -i :номер-порта покажет текущее состояние коннекта.
Другой вариант
netstat -np tcp 2>/dev/null | grep .ip-of-the-server | grep ESTABL
при возврате пустой строки - аларм.
__________________
Паранойю у админов лечить нельзя, надо лишь следить, чтобы развивалась в нужном направлении
SinClaus вне форума  
Старый 07.08.2015, 20:46     # 5
Caesar
Junior Member
 
Регистрация: 26.09.2003
Пол: Male
Сообщения: 59

Caesar СэнсэйCaesar СэнсэйCaesar СэнсэйCaesar СэнсэйCaesar СэнсэйCaesar СэнсэйCaesar СэнсэйCaesar СэнсэйCaesar СэнсэйCaesar СэнсэйCaesar СэнсэйCaesar СэнсэйCaesar СэнсэйCaesar Сэнсэй
Спасибо. Варианты с netstat и lsof подошли.
Caesar вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 16:33.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.