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

liquidsoap получение трека из скрипта php

 

3
neformatnoe @neformatnoe
Доброе время суток.
Версия ликвисупа 0-9-Х

Пытаюсь отдать плейлист из скрипта. Если указываю один трек, суп не срабатывает, если в плейлисте три трека всё работает.
Подскажите что делаю не так.

Цель: отдавать треки из скрипта, чтобы реализовать на сайте полноценный список того, что играет сейчас и играло до того в течении суток-недели-месяца, а так же сделать рейтинг треков. Сама серверная часть php - не проблема.
Загвоздка именно в отдаче файлов ликвисупу.
Сейчас работает сложная схема на скрипте самого супа, с несколькими плейлистами, джинглами, рекламой и прочей ерундой, но не могу сделать полноценную работу слушатель-трек-рейтинг-заказ трека в эфир, поэтому было решено перейти на другую схему, но хоть убей не могу разобраться как ликвисупу отдавать треки по одному из php

сейчас для теста запущена такая конфигурация.

  1. default = single("/mu/test.mp3")
  2. day=playlist(reload=5,"****//neformatnoe.ru/*******/php/testplaylist.php")
  3. night=playlist(reload=5,"****//neformatnoe.ru/*****/php/testplaylist.php")
  4. clock = single("/mu/test.mp3")
  5. radio = fallback([ request.queue(id="request"),
  6. switch([({ 6h-22h }, day),
  7. ({ 22h-6h }, night)]),
  8. default])
  9. # And the clock jingle
  10. radio = add([radio, switch([({59m56s},clock)])])
  11. # Add the ability to relay live shows
  12. full =
  13. fallback(track_sensitive=false,
  14. [input.http("****://localhost:8777/online"),
  15. radio])
  16. # Output the full stream in OGG and MP3
  17. output.icecast.lame(
  18. host="localhost",port=8777,password="*******",
  19. mount="live",url="www.****.ru",description="Neformatnoe Radio",full)




Если скрипт отдаёт один трек, то суп играет только тестовый сигнал непрерывно
Если скрипт отдаёт три трека и больше, то всё идёт хорошо, поток не прерывается, скрипт отдаёт рандомные треки, но так я не могу отслеживать время старта трека и правильно подсовывать джинглы и рекламу

Т.е. суть - кормить супу по одному заданию за раз. Для подстраховки (ну вдруг мало ли мускул упал,апач лёг, ещё какая жопа) если скрипт не отдал ни одного трека следующий брать из другого плейлиста, потом опять вернуться к скрипту

Поможите люди добрые))) Уже всю голову сломал. Гугл-переводчик и сайт ликвисупа вводят в ступор и путают ещё больше))) Гугл-поиск по данной проблеме ничего не выдал.

0
419
gyurgin_ @gyurgin_
Не знаю где Вы искали, вот по одному треку **********.

0
3
neformatnoe @neformatnoe
gyurgin_ пишет:

Не знаю где Вы искали, вот по одному треку **********.

Вы видимо невнимательно читали. Языка я не знаю, а с гуглотранслейтом на их сайте я разобраться не смог - он ещё больше путает.

  1. def my_request_function() =
  2. # Get the first line of my external process
  3. result =
  4. list.hd(
  5. get_process_lines("my_script my_params"))
  6. # Create and return a request using this result
  7. request.create(result)
  8. end
  9. # Create the source
  10. s = request.dynamic(my_request_function)


Вот конкретно с этим куском кода.
мне в output отправлять S?

0
3
neformatnoe @neformatnoe
Вот в данный момент конфиг такой:
  1. #!/usr/bin/liquidsoap
  2. set("log.file.path","/*****.ru/log/<script>.log")
  3. set("log.stdout", true)
  4. set("server.telnet", true)
  5. def my_request_function() =
  6. # Get the first line of my external process
  7. result =
  8. list.hd(
  9. get_process_lines("******/php/testplaylist.php"))
  10. # Create and return a request using this result
  11. request.create(result)
  12. end
  13. default = single("/mu/test.mp3")
  14. day=request.dynamic(my_request_function)
  15. night=request.dynamic(my_request_function)
  16. clock = single("/mu/test.mp3")
  17. radio = fallback([ request.queue(id="request"),
  18. switch([({ 6h-22h }, day),
  19. ({ 22h-6h }, night)]),
  20. default])
  21. radio = add([radio, switch([({59m56s},clock)])])
  22. full =
  23. fallback(track_sensitive=false,
  24. [input.http("***localhost:8777/online"),
  25. radio])
  26. output.icecast.lame(
  27. host="localhost",port=8777,password="*****",
  28. mount="live",url="***.ru",description="Neformatnoe Radio",full)


Результат выполнения - постоянно проигрывается дефолтный источник

0
419
gyurgin_ @gyurgin_
Ну если у Вас скрипт задает что дальше будет играть, то зачем вот выдумывать расписание, пусть php за все и отвечает. Вобщем подправил, сображайте.
  1. #!/usr/bin/liquidsoap
  2. set("log.file.path","/*****.ru/log/<script>.log")
  3. set("log.stdout", true)
  4. set("server.telnet", true)
  5. def my_request_function() =
  6. uri = get_process_output("/usr/bin/php ******/php/testplaylist.php")
  7. log (label="next_track",level=1,"#{uri}")
  8. request.create(uri)
  9. end
  10. radio = request.dynamic(id="playlist", my_request_function)
  11. clock = single("/mu/test.mp3")
  12. radio = add([radio, switch([({59m56s}, clock)])])
  13. radio = crossfade(start_next=3., fade_out=5., fade_in=1., mksafe(radio))
  14. input = input.http("***localhost:8777/online")
  15. full = fallback(track_sensitive=false, [input, radio])
  16. output.icecast.lame(
  17. host="localhost",port=8777,password="*****",
  18. mount="live",url="***.ru",description="Neformatnoe Radio", mksafe(full))

0





Согласие на обработку данных на нашем сайте

Продолжая просматривать страницу, вы соглашаетесь с использованием файлов «Cookie» и с Политикой конфиденциальности «Privacy».
Наверху или внизу страницы вы можете изменить валюту и язык по умолчанию. Английская версия сайта ещё находится в доработке и доступна не полностью.