ОсновноеRadiotalkПользовательское
Общие вопросы по интернет радио вещанию
6   •   Посмотреть все темы

По поводу логов playlist

 

52
newdj @newdj
У меня icecast записывает в файл playlist.log логи треков прозвучавших в эфире.
Он записывает со всех маунтов, а как быть если в эфире и live nonstop и он треки записывает и с того и с того потока.
Вот схема:
Если нет live потока то с nonstop что бы записывались
Если присутствует live то только с него треки записывать
Можно ли как-нибудь ?
Или может есть какой скрипт вывод последних 10 треков?

52
newdj @newdj
Что не кто не знает ?

765
radiopassazh @radiopassazh
это вам к Leff27

201
burn @burn
Маунты live и nonstop взаимозаменяемы?

Т.е. один работает, второй страхует, верно?

52
newdj @newdj
Да, если live работает то все слушатели на live, как только live отключается всех слушателей перебрасывает на nonstop.

201
burn @burn
Да, но формально же они остаются на /live.
Вы ведь fallback используете?

52
newdj @newdj
Да использую.

201
burn @burn
Вижу несколько вариантов.

Собираете из плейлиста все строки где на нонстопе слушателей > 0. Например,
21/Dec/2012:14:51:50 +0400|/nonstop|123|Untitled.mp3

Здесь, 123 = числу слушателей. Это значит что или напрямую подключились, или перекинуты с /live. Записываете список треков, отмечаете время. Затем оставшиеся треки (когда на нонстопе 0) отбираете по времени со второго маунта.

Второй вариант - это использовать on-connect и on-disconnect (описание здесь **********).
<on-connect>/home/icecast/bin/source-start</on-connect>
<on-disconnect>/home/icecast/bin/source-end</on-disconnect>

Эти два параметра задают пути к скриптам, которые будут запущены при подключении/отключении определенного потока.

52
newdj @newdj
Честно я не понял,
Вот конфиг icecast не мог бы ты сделать ?

Отредактировано newdj - 12.01.2013
201
burn @burn
Не страшно. Смотрите, при подключении маунта вызывается скрипт, который подсовывает айскасту другой лог, в который тот будет писать список игравших треков во время работы нужного маунта. Файл будет называться, скажем, playlist-w-live.log.

Из него потом родным системным grep'ом будут вытянуты все строки по лайву, например вот так:
cat /var/log/icecast2/playlist-w-live.log | grep "/live" > /var/log/icecast2/playlist-live.log
Теперь в файле playlist-live.log у вас все, что играло на /live (и только на /live) во время его работы. После отключения маунта, по соответствующей команде, начинает снова писаться что-то вроде playlist-nonstop.log.

Объединив потом эти два файла получите полный плейлист.

Это много более элегантное решение чем парсинг логов, который способны предложить местные PHP-обезьянки.

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

Я готов помочь советом и постараться направить вас на правильное решение. Сидеть и кодить, боюсь, желания нет. Для этого есть вышеупомянутые мостера похапе, которые за 2 бакса все сделают. Хотя я рекомендую разбираться во всем самостоятельно.