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

liquidsoap

 

6245
Тарас @tarasian666
**********
думаю откуда взять и как устанавливать не буду расписывать, есть и 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, дописывайте свои "достижения" ;)

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

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

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

Отредактировано alpha_Qu4z4r - 24.01.2010
6245
Тарас @tarasian666
при запуске второго - произойдет то же что и с любым другим софтом - не сможет подключится к серверу т.к. порт уже занят. С удаленного сервера тоже может брать мп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
44
alpha_Qu4z4r @alpha_Qu4z4r
Тоесть на лету не сильно то поуправляешь(подсунешь новые сценарии работы) супом? =(

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

6245
Тарас @tarasian666
супом на лету управлять можно, но пока не разбирался, знаю точно что через 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
44
alpha_Qu4z4r @alpha_Qu4z4r
В аудинксе так же отдельно создаются таргеты, сколько угодно разных серверов и можно гнать на них на все один поток или даже разные потоки на разные сервера. И ещё очень вкусная фича: когда подключается диджей, он подключается не к айскасту, а к аудинксу и может вклиниваться прямо поверх играющего трека, тоесть если написать грамотную админку и не требовать лайвового сведения, а только управления плэйлистом, то никакие дополнительные проги типа сэма не нужны, только что-нить что генерит поток из звука идущего с микрофона и браузер для управления плэйлистом.

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

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

6245
Тарас @tarasian666
alpha_Qu4z4r пишет:

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

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

alpha_Qu4z4r пишет:

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

/dev/dsp

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

Отредактировано tarasian666 - 24.01.2010
44
alpha_Qu4z4r @alpha_Qu4z4r
Да, про отдельный поток идея хорошая. А до sc_trans я пока так и не добрался =)

6245
Тарас @tarasian666
он намного проще двух упомянутых зверей )
хм... немного не коректно називать супом... в переводе то жидкое мыло :D

Отредактировано tarasian666 - 24.01.2010
44
alpha_Qu4z4r @alpha_Qu4z4r
Ой и правда soap мыло, а суп это soup =)

97
aPhone @aPhone
а это чудо вроде как то из винды можно запустить?
кто опишет как? :) плиз

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

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

6245
Тарас @tarasian666
любой подойдет

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

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

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

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

Отредактировано aPhone - 26.08.2010
6245
Тарас @tarasian666
насчет новых песен - надо думать над внешними скриптами, с исползованием базы данных
а с джинглами там просто, в мануале есть несколько примеров

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

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

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

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