MainRadiotalkCustom
Технологии вещания, софт, скрипты
4   •   Посмотреть все темы

liquidsoap

 

48
Amelion @Amelion
tarasian666 пишет:

а насколько "далеко" liquidsoap от подключаемого клиента к harbor ?

у меня все локально (кроме сервера) и такого нет


С локалки то-же самое(((


harbor под основное расписание убрал и задал ещё один fallback и mksafe - все стало ОК!

Отредактировано Amelion - 12.05.2012
2
Maestro @Maestro
Вот тоже вопрос возник: радио настроено, все работает, все хорошо. Треки берутся просто из директории.

На сайте есть блок, где показывается текущая песня. Инфа получается парсингом /status2.xsl айскаста - работает неплохо, но получается при каждом открытии страницы обращение к скрипту (через ajax) + обращение по хттп к статистике. Очень грустно и затратно. Поэтому собственно вопрос следующий: есть ли возможность при смене трека его метаданные передавать на внешний скрипт, который бы в базу данных их вставлял?

Может можно как-то давать liquidsoap трек? То есть после проигрывания текущего трека liquidsoap обращается к внешнему скрипту, скрипт из базы берет список треков, выбирает один случайный, ставит ему флажок "текущий" и скармливает его как следующий трек liquidsoap.

Специалисты, подскажите пожалуйста правильное решение?

UPD: По первой задаче решение нашел. Может кому-то пригодится:


def nowpl(m)
musica = '#{m["artist"]} - #{m["title"]}'
system("/home/radio/scripts/nowplaying #{quote(musica)}")
end

radio = on_metadata(nowpl,radio)


Но интересно решить вторым методом - через скармливание текущего трека из внешнего скрипта. Тогда автоматически решается проблема стола заказов. Просто скриптом из очереди стола заказов выбираешь нужный трек и отдаешь. Или я снова перемудрил? Я уже почти уверен, что задача решается через request.dynamic() - но как, понять пока не могу. Может у кого-то пример есть подходящий?

Отредактировано Maestro - 14.05.2012
6245
Тарас @tarasian666
def my_request_function() =
# Get the first line of my external process
log = log(label="rotator")
log("Getting song")
result =
list.hd(
get_process_lines("/home/taras/ls/rotator.pl"))
log("Got answer: #{result}")
# Create and return a request using this result
request.create(result)
end

myplaylist = request.dynamic(my_request_function)


6245
Тарас @tarasian666
можно и так myplaylist = request.dynamic({request.create("bar:foo", indicators=get_process_lines("/home/taras/ls/rotator.pl"))})

но я спецом расписал чтоб вставить логирование

2
Maestro @Maestro
tarasian666 пишет:

можно и так но я спецом расписал чтоб вставить логирование


Спасибо! То, что нужно! Вроде бы решение вырисовывается. Если все удастся, то выложу сюда решение стола заказов и блока текущей композиции для Drupal 7.

888
Falcon @Falcon
Soap настроен на перекодировку потока, не могу сообразить, как заставить его принять метадату со входящего потока и отправлять её на сервер айскаст?

6245
Тарас @tarasian666
у меня оно всегда по дефолту принимало и передавало, так что не его надо заставлять, а искать что не нравится ему

Отредактировано tarasian666 - 17.05.2012
888
Falcon @Falcon
В *.liq файле у меня:
#!/usr/bin/liquidsoap
set("log.file.path","/home/falcon/user8001/liq.log")
set("init.daemon.pidfile.path","/home/falcon/user8001/liq.pid")
output.icecast(%aacplus(channels=2, samplerate=44100, bitrate=64), host = "localhost", port = 8001, password = "hackme", mount = "localaac", mksafe(input.http("http://localhost:8001/local")))

В итоге на странице айскаста совпадает только текущий трек. Stream name, Stream description, Stream URL - разные. Соап подставляет свои данные. Можно ли как-то заставить отправлять его данные со входного потока?

6245
Тарас @tarasian666
а эту метадату..
с этим надо повозиться

28
alexgard @alexgard
Здравствуйте.

А как подключить к windows сборке - wget?

6245
Тарас @tarasian666
никак, но и зачем?

727
Leff27 @Leff27
Здравствуйте.
А как подключить к windows сборке - wget?

Я так понимаю, кто-то хочет установить ПО linux на windows :D

223
Игорь @devilben
Leff27 пишет:

Здравствуйте.
А как подключить к windows сборке - wget?

Я так понимаю, кто-то хочет установить ПО linux на windows :D


А в чем собственно**********
tarasian666 пишет:

никак, но и зачем?

я так понимаю есть необходимость брать треки по http/ftp, но это же порт под винду, в случае как и с апачем например, функционал не полон в отличии от "родной" версии под линукс

Отредактировано devilben - 18.05.2012
28
alexgard @alexgard
devilben пишет:

Leff27 пишет:

Здравствуйте.
А как подключить к windows сборке - wget?

Я так понимаю, кто-то хочет установить ПО linux на windows :D


А в чем собственно**********


wget я установил, и он работает правильно...

Но liquidsoap не находит его: [protocols.external:3] Didn't find "wget".

Как сделать, что бы он нашел его?

223
Игорь @devilben
alexgard пишет:

Как сделать, что бы он нашел его?

Дополнил предыдущее сообщение

67
nivs @nivs
alexgard, возможно надо добавить wget этот в PATH

28
alexgard @alexgard
nivs пишет:

alexgard, возможно надо добавить wget этот в PATH


Это я сделал в первую очередь...... Не помогло....

28
alexgard @alexgard
devilben пишет:

Leff27 пишет:

Здравствуйте.
А как подключить к windows сборке - wget?

Я так понимаю, кто-то хочет установить ПО linux на windows :D


А в чем собственно**********
tarasian666 пишет:

никак, но и зачем?

я так понимаю есть необходимость брать треки по http/ftp, но это же порт под винду, в случае как и с апачем например, функционал не полон в отличии от "родной" версии под линукс



Да, проблема именно в этом! Можете подсказать, как воспроизводить треки не скачивая их?

223
Игорь @devilben
alexgard пишет:

как воспроизводить треки не скачивая их?

Если машина с которой планируется брать треки доступна по http то проще установить туда Liquidsoap и передавать на сервер с Icecast2

Отредактировано devilben - 18.05.2012
28
alexgard @alexgard
devilben пишет:

alexgard пишет:

как воспроизводить треки не скачивая их?

Если машина с которой планируется брать треки доступна по http то проще установить туда Liquidsoap и передавать на сервер с Icast2


У меня ситуация вообще веселая!

Есть три сервера...

1 сервер - на нем стоит IceCast и liquidsoap.
2 сервер - на нем лежат треки
3 сервер - лежит плейлист (php код который создает плейлист)

Суть - транслировать треки с сервера №2 не скачивая их на сервера №1 и №3.

На крайний случай, можно установить liquidsoap на сервер №3