Тема: liquidsoap

http://savonet.sourceforge.net/
думаю откуда взять и как устанавливать не буду расписывать, есть и svn и deb пакеты которые есть в репозиториях, если уж не поймете то пишите.
может надо переместить тему в мануалы... но, так сказать, скрипт все таки.. и технология вещания.. и софт
самый простой запуск, просто плейлист вещаем
создаем скрипт

#!/usr/bin/liquidsoap
# где будут логи
set("log.file.path","/tmp/test.log")

# загружаем плейлист
myplaylist = playlist("/home/user/radio/music.m3u")

#запускаем вещалку
output.icecast(%vorbis,
  host = "localhost", port = 8000,
  password = "hackme", mount = "test", myplaylist)

конечно же ставим права на запуск и запускаем (без прав root)
в icecast должен появится маунт test и вещать в формате ogg

рассмотрим более интересное построения плейлиста

# загружаем плейлист
myplaylist = playlist("/home/user/radio/music.m3u")
# загружаем джинглы
jingles = playlist("/home/user/radio/jingles.m3u")

# строим плейлист с джинглами, radio = myplaylist - просто для удобства
radio = myplaylist
# задаем частоту джинглов, 1 джингл на 4 песни
radio = random(weights = [1, 4],[jingles, radio])

#запускаем вещалку
output.icecast(%vorbis,
  host = "localhost", port = 8000,
  password = "hackme", mount = "test", radio)

можно пускать на несколько серверов, просто прописывая "вещалки" с тем же плейлистом (но можно и разные)

output.icecast(%mp3,
  host="localhost",port=8000,password="hackme",
  mount="test_mp3",radio)

output.shoutcast(%mp3,
                host="localhost", port = 8002, 
            password = "changeme", radio)

рассмотрим построение плейлиста в зависимости от времени суток

#дневной плейлист
day     = playlist("/home/user/radio/day.pls")
#ночной
night   = playlist(/home/user/radio/night.pls")

#задаем время
radio = switch([({ 6h-22h }, day),  ({ 22h-6h }, night)])

реализация кроссфейда

#построение плейлиста с кроссфейдом
#fade_out - затухание предыдущей песни в сек
#fade_in - нарастание следующей песни в сек
radio = crossfade(start_next=1.,fade_out=5.,fade_in=3.,playlist("/home/user/radio/playlist.pls"))

другие опции вещялки: genre, url, public (true или false), name, protocol (http или icy), bitrate

пока не разобрался с заказами, разберусь - дополню.

может кто уже работал с liquidsoap, дописывайте свои "достижения" wink

Отредактировано tarasian666 (07-12-2011 20:27:24)

2

Re: liquidsoap

Оо, отлично, хоть кто-то разобрался таки с этим зверем. Спасибо!

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

Кстати, подсказали тут похожее, но в чём-то даже превосходящее по функционалу средство audinx.ru
Так же использует что-то вроде скриптового языка(Сам автор сравнивает с языком sql), но внутри себя имеет всякие фильтры, компрессоры и всё в таком духе. А так же умеет проигрывать мп3шки с удалённых веб серверов. Но самая вкусная фича, умеет запрашивать дальнейшие инструкции, например у php скрипта, что открывает широченные возможности по управлению, правда надо писать управлялку самостоятельно, хотя на сайте есть экземпл подобного скрипта.

Отредактировано alpha_Qu4z4r (24-01-2010 01:18:42)

3

Re: liquidsoap

при запуске второго - произойдет то же что и с любым другим софтом - не сможет подключится к серверу т.к. порт уже занят. С удаленного сервера тоже может брать мп3шки. Насчет "инструкций" он помоему тоже способен, с telnet и скриптами perl.
audinx - работает только с icecast, вещает только в mp3, собран только на 32бита и не вижу source для возможности собрать под 64 бита (или даже что нибуть изменить).
liquidsoap работает и с icecast и shoutcast, вещает в mp3, ogg, aac, aac+, да вобщем в любом формате который можно прикрутить при сборке.
Брать "материал" для вещания может тоже почти откуда угодно, хоть с last.fm, фильтры тоже можно ставить (ladspa - здесь вобще открывается неограниченое пространство для маневров)... так что по функционалу еще можно поспорить ))

попробовал запустить audinix и тут он себя оч плохо показал... не запускается потому что "у меня нет библиотеки lame"... НО У МЕНЯ ОНА ЕСТЬ !!!!
И еще б сделали скрипт "заготовку" типо демонстрационку, понимаю что зделали все за 7 суток, но не думаю что даже разработчики все в ручную пишут типа audinix -h 192.168.0.1 -p 8127 и тд и тп

Отредактировано tarasian666 (24-01-2010 13:26:56)

4

Re: liquidsoap

Тоесть на лету не сильно то поуправляешь(подсунешь новые сценарии работы) супом? sad

По audinx:
OGG плохх тем, что половина плееров его как поток не воспроизводят, а следовательно лишаешься половины аудитории одним махом, либо приобретаешь кучу головной боли с объяснением всем желающим, что нужно скачать "правильный" плеер и тд и тп. ААС вообще непонятно кому вещать. Так что проблема недостатка форматов просто не стоит.  Документации хоть и не много, но достаточно чтобы быстро врубиться и начать работать, в отличае от сложного жидкого супа sad где без достаточного изучения доков и хорошего знания инглиша сложно что-то сделать. Исходники можно попросить у автора, хотя тоже не понимаю почему он их не выкладывает, наверное потому что не хочет суппортить. С кодеками хз, у меня после установки порта lame всё заработало. Касаемо архитектуры, для такой "мелкой" утилы 64 бита не сильно то нужны.

5

Re: liquidsoap

супом на лету управлять можно, но пока не разбирался, знаю точно что через telnet можно.
так же он может одновременно на несколько серверов транслировать (нащет может ли audinix не понял)
audinix в основном хочет выехать на фильтрах, но фильтры думаю будут только те что впихнут. В супе зато можно совать все возможные ladspa фильтры (их поверьте много..)
может у меня audinix и не видит lame из-за того что система 64 битная..

ogg поддерживают все современные плееры, так же как и aac+. Но ogg не так хорош потому и поддержка его не везде реализовывается.
aac+ формат утирает нос всем форматам потокового аудио по качеству и низкому битрейту!!! Воспризводиться на всех извесных мне популярных плеерах, ну подумаешь flash плеер его не играет, но он вобще только mp3 и играет, щас уже взялись за разработку web flash плеера с поддержкой потокового aac+.
64 кбит aac+ по качеству утирает нос 128кбит mp3, так же mp3 может иметь частоту дискридитации максимум 48кгц, в то время aac+ максимум 96кгц

пс не путать aac с aac+

Отредактировано tarasian666 (24-01-2010 14:33:48)

6

Re: liquidsoap

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

96 это уже hi-end решение, для интернет радио совершенно избыточное.

А с оггом у меня рельно были проблемы, поскольку traktor умеет генерить поток только в нём, решили не заморачиваться, но оказалось, что примерно половина слушателей(даже винамп у нас), не смогли ничего услышать sad Кроме того, для совсем ленивых и безграмотных я сделал упор на флэшовый плеер , чтобы можно было зайти на сайт и не париться с плэйлистами и всем таким и не объяснять что куда нажать чтобы играло. Просто зашёл на сайт, где почти ничего кроме плеера то и нет, и слушаешь себе ни о чём не парясь. Так что в любом случае пока не будет полной поддержки как 100% плееров, так и флэшовым плеером, со стандартного мп3 уходить не буду.

7

Re: liquidsoap

alpha_Qu4z4r пишет:

И ещё очень вкусная фича: когда подключается диджей, он подключается не к айскасту, а к аудинксу и может вклиниваться прямо поверх играющего трека

такую фичу уже давно реализовали в sc_trans 2. Да в принципе и в супе реально сделать.

alpha_Qu4z4r пишет:

только что-нить что генерит поток из звука идущего с микрофона

/dev/dsp

для вставки aac+ в страницу есть  divx веб плеер. Но все ровно я думаю слушать радио со страницы мягко говоря тупо, ни еквалайзера нет, ни еще какой нибуть нужной вещички которая есть в любимом слушателю плеере.
Считаю что веб плеер только для "ознакомления с радио" (и если понравилось то можна скачать плейлист), для чего в крайнем случае можно сделать отдельный поток в мп3.

Отредактировано tarasian666 (24-01-2010 15:00:34)

8

Re: liquidsoap

Да, про отдельный поток идея хорошая. А до sc_trans я пока так и не добрался smile

9

Re: liquidsoap

он намного проще двух упомянутых зверей )
хм... немного не коректно називать супом... в переводе то жидкое мыло big_smile

Отредактировано tarasian666 (24-01-2010 15:40:56)

10

Re: liquidsoap

Ой и правда soap мыло, а суп это soup smile

11

Re: liquidsoap

а это чудо вроде как то из винды можно запустить?
кто опишет как? smile плиз

BelRadio - радио Белгорода online

Меняюсь ссылками, баннерами на главной и внутренних, пишите в ЛС

12

Re: liquidsoap

вроде как можно но таким извращением не занимался )

13

Re: liquidsoap

хорошо.. А какого линя лучше использовать?
Убунту подойдет для экспериментов?

BelRadio - радио Белгорода online

Меняюсь ссылками, баннерами на главной и внутренних, пишите в ЛС

14

Re: liquidsoap

любой подойдет

15

Re: liquidsoap

есть ли там функция автоматического сканирования каталога и создание плейлиста и дальнейшее его проигрывание??

т.е. мне нужно так: чтобы я ложил песни в папку и он автоматом подхватывал их в ротацию

BelRadio - радио Белгорода online

Меняюсь ссылками, баннерами на главной и внутренних, пишите в ЛС

16

Re: liquidsoap

там все есть )
но для таких малых нужд хватит и ices с плейлистом на perl

17

Re: liquidsoap

отлично.. А можно ли делать приоритетность песен? Чтобы новые песни которые попадают в плейлист, игрались чаще чем старые?
а так же ставить отбивки часовые с джинглами?

Отредактировано aPhone (26-08-2010 14:25:35)

BelRadio - радио Белгорода online

Меняюсь ссылками, баннерами на главной и внутренних, пишите в ЛС

18

Re: liquidsoap

насчет новых песен - надо думать над внешними скриптами, с исползованием базы данных
а с джинглами там просто, в мануале есть несколько примеров

19

Re: liquidsoap

Столкнулся с досадной проблемой. При запуске:

tntradio@tntserver:~$ cd radio
tntradio@tntserver:~/radio$ ./start.liq
At line 35, char 21: unbound symbol output.icecast.mp3.

С vorbis работает, но нужен именно mp3.

http://img95.imageshack.us/img95/9467/bucketheadbargt5wf2.png

20

Re: liquidsoap

в debian помоему нет поддержки mp3 поетому надо собирать из svn
я именно так и сделал и все заработало без проблем, правда там чуть конфиг изменился, а именно синтаксис создания потоков

21

Re: liquidsoap

Насколько я успел разобраться, liquidsoap - очень гибкая система.

В общем, напишу о своем знакомстве с ней).
Попробовал ставить такую систему: Ubuntu 9.04, Icecast 2, liquidsoap.
Со всем в принципе разобрался, только mp3 работать не хотело...
Вчера весь день, и пол дня сегодня плясал с бубном, и методом тыка пробовал завести mp3. Прогуглил все, что можно, и прочитал кучу мануалов с сайта savonet, 100500 раз собирал из исходников liquidsoap.
output.icecast.mp3 так и не заработал, но (о боги!) заработало наконец-то output.icecast.lame

И... винт накрылся. Старый уже был. Именно тогда, когда я все доделал и лег спать, да. Трудно не выйти за рамки цензуры...
Поставил на другой винт Ubuntu 9.04. Но совершенно не помню что делал, а тем более, после каких действий заработала lame.
На багтрекере debain кто-то писал про аналогичную проблему, и решалась она установкой liblame-dev. Попробовал установить этот пакет (и еще один зависящий), и пересобрать liq. Эффекта ноль. Вообще. Самое глупое, что при пересборке make пишет, что mp3 encoding [on].
Сейчас уже на третий винт попробую поставить opensuse, и поднять liq на ней, но продолжу эксперементы с liquidsaop. Если что-то выйдет - напишу мануал smile.

Интересно, кто-то, кроме меня и tarasian666 ставил liquidsoap на deb-дистрибутив?

Отредактировано Thomas (12-09-2010 01:05:04)

http://img95.imageshack.us/img95/9467/bucketheadbargt5wf2.png

22

Re: liquidsoap

плохо гуглим, в svn для mp3 надо не output.icecast.lame, а output.icecast(%mp3

http://savonet.sourceforge.net/doc-svn/quick_start.html

23

Re: liquidsoap

tarasian666 пишет:

плохо гуглим, в svn для mp3 надо не output.icecast.lame, а output.icecast(%mp3

http://savonet.sourceforge.net/doc-svn/quick_start.html

чего-то не помогло, но я пересобрал все, и скрипт запускал не указывая бинарник liquidsoap, а тупо запуская liquidsoap 'все_параметры_тут', это помогло ))

Отредактировано Thomas (12-09-2010 20:37:31)

http://img95.imageshack.us/img95/9467/bucketheadbargt5wf2.png

24

Re: liquidsoap

#!/usr/local/bin/liquidsoap
вот так бинарник указан?

25

Re: liquidsoap

tarasian666 пишет:

#!/usr/local/bin/liquidsoap
вот так бинарник указан?

Было #!/usr/bin/liquidsoap sad.
Огромное спасибо, теперь все работает как часы!

http://img95.imageshack.us/img95/9467/bucketheadbargt5wf2.png