1,201

Re: liquidsoap

пишет tarasian666:

впихать в queue через telnet
или
генерировать плейлист в файл который liquidsoap будет читать обычным способом

об этом я тоже думал. Как думаешь будет лучше?

1,202

Re: liquidsoap

через telnet можно добавлять и добавлять в случае чего, только когда очередь кончится то наверно будет молчать

если через плейлист то добавление не будет таким динамичным, перечитывание плейлиста будет только по заданному времени, зато если доиграет до конца то начнет сначала

тут уже что больше подходит в конкретных нуждах

1,203

Re: liquidsoap

пишет tarasian666:

через telnet можно добавлять и добавлять в случае чего, только когда очередь кончится то наверно будет молчать

Даже если fallback настроить?

1,204

Re: liquidsoap

с fallback не будет молчать

1,205

Re: liquidsoap

пишет tarasian666:

с fallback не будет молчать

с телнетом ни разу не связывался через запрос. буду искать и пробовать...

1,206

Re: liquidsoap

Друзья, помогите пожалуйста написать код. В принципе по примерам я уже запустил простецкий сервак, но мне необходимо реализовать такую схему...

Примерная суть: 5 маунтпоинтов на harbor. Два из них рандомом активируются (то есть играет двое человек в эфире. Один заканчивает, другой его сменяет) Далее, если расписывать кождого через fallback, то получается, что тот, кто прописан первее, тот и должен отключиться, тогда следующий попадет в эфир. Но нужно сделать так, чтобы каждое последующее подключение выходило поверх предыдущего.

1,207

Re: liquidsoap

Уважаемые, нуждаюсь в добром совете!

Имеем:

set("harbor.bind_addr","0.0.0.0")
live = audio_to_stereo(input.harbor(id="livedj", port=8020, password="password", "livedj"))

К этому маунтпоинту dj снаружи подключаются с помощью traktor, который отдает теги проигрываемых песен.

morningregress = audio_to_stereo(playlist("/home/radio/audio/denplaylist.m3u"))
jin = audio_to_stereo(jin_tag(playlist("/home/radio/audio/jin.m3u")))
morningregress = random(weights=[1,5],[jin,morningregress])

Внимание, вопрос: в момент переключения dj песен, почему-то срабатывает random(weights=[1,5],[jin,morningregress]) и перед песней проигрывается кусок джингла из плейлиста jin. В тот-же момент затираются id3-теги песни. Как этого избежать?

Отредактировано solariz (16-08-2015 02:22:02)

1,208

Re: liquidsoap

День добрый !
Есть 2 плейлиста, 1 большой с музыкой, другой маленький с джинглами (3-4 шт).
Как сделать что-бы плейлист с джинглами проигрывался несколько раз в час в режиме normal и только 1 раз от начала до конца и потом снова переключалось на плейлист с музыкой ?
Сейчас конструкция с использованием switch переключает на джинглы но они начинают проигрываться по кругу,
можно ли как-то это обойти желательно без использования таких конструкций как playlist.merge или playlist.once т.к. при их использовании я не вижу очередей этого плейлиста через telnet и плюс при их проигровании в лог сыпится что-то типа такого:

[request:3] Nonexistent file or ill-formed URI "/opt/btsync/ro/radio/Jingles/golos.mp3"

хотя все на месте и нормально играется.

1,209

Re: liquidsoap

Всем здрасьте! Прошу помощи. В общем, сделал расписание через switch. Две часовые отбивки (одна стандартная, а другая выходит только в полночь и полдень), и два блока (~ на 20й и 50й минуте). Остальное - музыка. Запустил, порадовался что всё выходит как надо, но... эта собака отыграет час-два и на расписание забивает, т.е. в эфире начинает играть только музыка. Кто-нибудь сталкивался с подобной проблемой?

Отредактировано Maksimum (07-11-2015 16:30:41)

1,210

Re: liquidsoap

#!/usr/bin/liquidsoap

set("init.daemon", true)
set("init.daemon.pidfile.path", "/var/run/liquidsoap/icecast.pid")

set("log.file", true)
set("log.file.path", "/var/log/liquidsoap/radio_7000.log")

set("log.stdout",false)

set("server.telnet", true)
set("server.telnet.bind_addr", "127.0.0.1")
set("server.telnet.port",1234)

# нонстоп
myplaylist = audio_to_stereo(playlist(reload=360, "/var/www/radio/music/nonstop/01"))

jingles = audio_to_stereo(playlist(reload=360, "/var/www/radio/music/jingls"))
 
#сетка вещания

#понедельник 
outmind = audio_to_stereo(playlist(reload=360, "/var/www/radio/music/outmind"))
roman_volkov = audio_to_stereo(playlist(reload=360, "/var/www/radio/music/roman_volkov"))
sky_paradise = audio_to_stereo(playlist(reload=360, "/var/www/radio/music/sky_paradise"))

#вторник
sairtech = audio_to_stereo(playlist(reload=360, "/var/www/radio/music/sairtech"))
constantine_kashirin = audio_to_stereo(playlist(reload=360, "/var/www/radio/music/constantine_kashirin"))
aeroritmix = audio_to_stereo(playlist(reload=360, "/var/www/radio/music/aeroritmix"))
aquasound = audio_to_stereo(playlist(reload=360, "/var/www/radio/music/aquasound"))

#среда
value = audio_to_stereo(playlist(reload=360, "/var/www/radio/music/value"))
alexnegniy = audio_to_stereo(playlist(reload=360, "/var/www/radio/music/alexnegniy"))
yaricmelody = audio_to_stereo(playlist(reload=360, "/var/www/radio/music/yaricmelody"))
kontroller_project = audio_to_stereo(playlist(reload=360, "/var/www/radio/music/kontroller_project"))
outey = audio_to_stereo(playlist(reload=360, "/var/www/radio/music/outey"))
kirill_forvard = audio_to_stereo(playlist(reload=360, "/var/www/radio/music/kirill_forvard"))

#четверг
mischa_sobakin = audio_to_stereo(playlist(reload=360, "/var/www/radio/music/mischa_sobakin"))
airdigital = audio_to_stereo(playlist(reload=360, "/var/www/radio/music/airdigital"))
armin_live = input.http("http://pub8.di.fm:80/di_trance")

#пятница
helgi = audio_to_stereo(playlist(reload=360, "/var/www/radio/music/helgi"))
foxt = audio_to_stereo(playlist(reload=360, "/var/www/radio/music/foxt"))
deimandedis = audio_to_stereo(playlist(reload=360, "/var/www/radio/music/deimandedis"))
dj_silere = audio_to_stereo(playlist(reload=360, "/var/www/radio/music/dj_silere"))
ocean_moments = audio_to_stereo(playlist(reload=360, "/var/www/radio/music/ocean_moments"))
guest_radio = audio_to_stereo(playlist(reload=360, "/var/www/radio/music/guest_radio"))

#суббота
djkostya_d = audio_to_stereo(playlist(reload=360, "/var/www/radio/music/djkostya_d"))
james_angel = audio_to_stereo(playlist(reload=360, "/var/www/radio/music/james_angel"))
artem_maltsev = audio_to_stereo(playlist(reload=360, "/var/www/radio/music/artem_maltsev"))
moonrider = audio_to_stereo(playlist(reload=360, "/var/www/radio/music/moonrider"))
mj_mark = audio_to_stereo(playlist(reload=360, "/var/www/radio/music/mj_mark"))

#воскресенье
maksim_day = audio_to_stereo(playlist(reload=360, "/var/www/radio/music/maksim_day"))
tailer = audio_to_stereo(playlist(reload=360, "/var/www/radio/music/tailer"))
dj_slaider = audio_to_stereo(playlist(reload=360, "/var/www/radio/music/dj_slaider"))
alexander_igorev = audio_to_stereo(playlist(reload=360, "/var/www/radio/music/alexander_igorev"))
dj_denori = audio_to_stereo(playlist(reload=360, "/var/www/radio/music/dj_denori"))
belaha = audio_to_stereo(playlist(reload=360, "/var/www/radio/music/belaha"))
dj_gelius = audio_to_stereo(playlist(reload=360, "/var/www/radio/music/dj_gelius"))

#технические плейлисты
tehnical = audio_to_stereo(playlist(reload=360, "/var/www/radio/music/tehnical"))

rotate_air = random(weights=[1,3],[jingles,myplaylist]) 
 
prog = switch([

({1w20h00m00s-1w20h59m59s}, once(outmind)),
({1w21h00m00s-1w21h59m59s}, once(roman_volkov)),
({1w22h00m00s-1w22h59m59s}, once(sky_paradise)),

({2w18h00m00s-2w18h59m59s}, once(sairtech)),
({2w21h00m00s-2w21h59m59s}, once(constantine_kashirin)),
({2w22h00m00s-2w22h59m59s}, once(aeroritmix)),
({2w23h00m00s-2w23h59m59s}, once(aquasound)),

({3w16h00m00s-3w16h59m59s}, once(value)),
({3w18h00m00s-3w19h59m59s}, once(alexnegniy)),
({3w20h00m00s-3w20h59m59s}, once(yaricmelody)),
({3w21h00m00s-3w21h59m59s}, once(kontroller_project)),
({3w22h00m00s-3w23h59m59s}, once(outey)),
({4w0h00m00s-4w0h59m59s}, once(kirill_forvard)),

({4w18h00m00s-4w19h59m59s}, once(mischa_sobakin)),
({4w20h00m00s-4w20h59m59s}, once(airdigital)),
({4w22h00m00s-4w23h59m59s}, armin_live),

({5w16h00m00s-5w16h59m59s}, once(helgi)),
({5w17h00m00s-5w18h59m59s}, once(foxt)),
({5w19h00m00s-5w19h59m59s}, once(deimandedis)),
({5w20h00m00s-5w20h59m59s}, once(dj_silere)),
({5w21h00m00s-5w21h59m59s}, once(ocean_moments)),
({5w22h00m00s-5w22h59m59s}, once(guest_radio)),

({6w15h00m00s-6w16h59m59s}, once(djkostya_d)),
({6w18h00m00s-6w18h59m59s}, once(james_angel)),
({6w20h00m00s-6w20h59m59s}, once(artem_maltsev)),
({6w21h00m00s-6w21h59m59s}, once(moonrider)),
({7w0h00m00s-7w0h59m59s}, once(mj_mark)),

({7w15h00m00s-7w15h59m59s}, once(maksim_day)),
({7w17h00m00s-7w17h59m59s}, once(tailer)),
({7w18h00m00s-7w18h59m59s}, once(dj_slaider)),
({7w19h00m00s-7w19h59m59s}, once(alexander_igorev)),
({7w20h00m00s-7w20h59m59s}, once(dj_denori)),
({7w21h00m00s-7w21h59m59s}, once(belaha)),
({7w22h00m00s-7w22h59m59s}, once(dj_gelius)),

({1w19h55m-1w20h00m}, once(tehnical))


]) 

radio = fallback(track_sensitive=false,[prog, rotate_air]) 

radio = mksafe(radio)
radio = smart_crossfade(start_next=6.0, fade_out=3.0, fade_in=3.0, radio) 
 
output.icecast(%mp3(bitrate=256, samplerate = 44100, stereo = true), 
host = "localhost", 
port = 7000, 
name="EDM Radio 256 Kbit/s", 
genre="Elecrtonic", 
url="http://edmradio.ru/", 
description="Electronic Dance Music Radio", 
password = "xxxxxxxxxxxx", 
mount = "/autodj", 
radio)

Здравствуйте!
Почему у меня не всегда загружается сетка вещания? нонстоп играет а расписание не работает иногда! Не могу полноценно перейти на liquidsoap из-за этого

1,211

Re: liquidsoap

Привет, уважаемые гуру.
Подскажите пожалуйста решение моей проблемы.
Есть очень простой скрипт воспроизведения, например:
#!/usr/bin/liquidsoap

set("log.level", 3)
set("log.file",true)
set("log.stdout",false)

wd = "/srv/music"
pl = "#{wd}/playlist"
sc = "#{wd}/sec"
ni = "#{pl}/night"
da = "#{pl}/day"

mus_ni = mksafe(playlist (mode="random", reload = 10800, "#{ni}"))
mus_da = mksafe(playlist (mode="random", reload = 10800, "#{da}"))
security = mksafe(playlist("#{sc}"))

music = fallback(track_sensitive = false, [switch([
        ({  18h - 08h  }, mus_ni),
        ({  08h - 18h }, mus_da)]),security
])

music = crossfade(start_next=10., fade_out=10., fade_in=5., music)
music = compress(attack=2., ratio=2., knee=6.,  gain=-1., threshold=-4.64, release=50.,  music)
music = ladspa.tap_equalizer(band_7_freq=16., band_7_gain=3., music)
music = ladspa.tap_limiter(output_volume=-1., limit_level=1., music)

output.alsa(music)

Бьюсь уже который день со следующей проблемой. В момент перехода (crossfade) в логах вываливается ошибка, типа:
2015/12/22 08:39:54 [alsa_out(default):2] Underrun!
2015/12/22 08:39:54 [alsa_out(default):2] Trying to recover..
2015/12/22 08:39:58 [alsa_out(default):2] Underrun!
2015/12/22 08:39:58 [alsa_out(default):2] Trying to recover..

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

1,212

Re: liquidsoap

У меня вывод звука сейчас идёт в интернет. Как добавить к нему вывод ещё на hw0:0?

set("log.file",false)
set("log.stdout", true)
set("log.level", 3) 

set("tag.encodings",["UTF-8"])

set("server.telnet", true)


# Live
#set("harbor.bind_addr","0.0.0.0")

live = audio_to_stereo(
    input.harbor(
        id="LIVE",
        port=8010,
        password="123",
        "live"
    )
)



# Music
myplaylist = playlist(mode = "random", "/home/radio/music/")
myplaylist = mksafe(myplaylist)


radio = fallback(id="STREAM", track_sensitive = false, ([
    fallback.skip(input=live, nrj(myplaylist)),
    blank()
]))


output.icecast(
    %mp3(bitrate=128, samplerate = 44100, stereo = true),
    host = "127.0.0.1",
    port = 8000,
    name="Test radio",
    genre="various",
    url="",
    description="",
    user = "source",
    password = "123",
    mount = "/radio",
    radio
)

UPDATE 1

Если добавить в конец строку:

output.alsa(radio)

при запуске возникает ошибка:

2016/06/03 02:50:27 [threads:1] Thread "alsa_out(default)" aborts with exception Alsa error: No such file or directory!
Thread 6 killed on uncaught exception Alsa.Unknown_error(2)

Отредактировано artem78 (03-06-2016 03:55:52)

1,213

Re: liquidsoap

Всем привет!
Не могу найти решение казалось бы простой задачи. Делаю радио с музыкой 24ч и джинглами. Но есть также передачи в виде последовательного набора файлов(фактически это плейлисты со списком локальных mp3 файлов, генерируемые периодически по cron).  Нужно их проигрывать с началом в заданное время однократно (единоразово) в день, но ежедневно. Например, в 14:00 тормозим музыку, включаем последовательно 4 файла передачи1(плейлист), по окончании передачи возобновляем музыку.
Включить передачи в switch на заданный промежуток времени (типа с 14 до 15) нельзя, т.к. не известна заранее продолжительность. Switch либо отбрубает передачи не вовремя, либо наоборот, плейлист успевает пойти повторно по кругу.
Пробовал sequence, playlist.once - но они срабатывают правильно лишь однократно и останавливают плейлист передачи. В следующее включение источник уже не активен.
Пробую playlist.reloadable с функцией перегрузки плейлиста.Но он перегружает мгновенно и плейлист сразу идет по кругу.
Можно ли как-то установить таймаут для перегрузки в playlist.reloadable? Или можно ли как-то активировать заново источник, прибитый после playlist.once? Или есть более гениальный путь, как проигрывать плейлисты ежедневно, но только по одному разу?

1,214

Re: liquidsoap

млять чуваки .. как можно заморачиваться на юникс платформах с радио ? Не понимаю.  Заняться в жизни чтоль больше нечем ? Кому оно нужно такое Г? Покажите мне хоть одно радио на юниксах, где слушателей больше сотни и эфир приятно будет слушать .. ..   95% нет такого радио.

з.ы. windows  - качество, удобство и простота в реализации любых ваших нереальных идей. Ключ от всех дверей славы ..

Отредактировано radio_good (24-08-2016 17:16:46)

1,215

Re: liquidsoap

Не путайте именно контент с вещанием. Покажите мне сервер на винде котрый выдержит в пике 30 000 слушателей.
Windows - система, качество - люди.
Удобство - не спорю. Все остальное не про интернет вещание.
P.S. По звуку вот можете протестировать, не все сидят и разглогольстувуют http://radioprocessor.com/ я там сделал деморежим.

Отредактировано gyurgin_1_3 (27-08-2016 00:23:30)

1,216

Re: liquidsoap

не .слабенький процессор .. почти ничего он толком и не меняет картину ... по сути это максимайзер.  Динамику звучанию он врятли сможет дать. 
рано предоставлчешь услугу ...  хотя бы пресетов навоял шутк десять.  Не каждыы знает и не разберется в обработке и терминах процессора. 
Я бы не пользовался онлайн, а сделал проще -  муз. базу прогнал в оффлайн обработке и вопрос снят. Например, Samplitude или в др.
Если хочешь вообще классный звук был "FM" то однозначно Sonos, StereoTool ну или в конце концов Sam  )
Вопрос вообще не вижу сложным.  всё делается на раз-два-три ...  программным путем. 
Про обработку Аппаратными средствами здесь на форуме нет смысла говорить )

про нагрузку ... раньше пятерка р/станций (DFM/Mcarlo/Maximum/русское Р/) вещали в интернет с Windows media server
сейчас не знаю ... надо смотреть ихнии потоки ...

Вот в чем я с вами соглашусь на 100% так это только в ценовой политики этих двух платформ. Тут без компромиисоов - *nix

так что gyurgin_1_3 ...как юзал свой  bigtunesradio.com на никсах так и продолжай дальше ... сайт скатился до "просто плеер"...смысл потихоньку сходит на нет ....   рекламой бы лучше занялся своего проекта ...

Отредактировано radio_good (30-08-2016 22:13:58)

1,217

Re: liquidsoap

кто побывал ставить на debian 8 + icecast 2.4.0?

1,218

Re: liquidsoap

ya stavil no sovetalbi ludza icecast KH versiju postavit smile

https://cdn1.iconfinder.com/data/icons/fatcow/16/debian.png

1,219

Re: liquidsoap

пишет radio_good:

не .слабенький процессор .. почти ничего он толком и не меняет картину ... по сути это максимайзер.  Динамику звучанию он врятли сможет дать. 
рано предоставлчешь услугу ...  хотя бы пресетов навоял шутк десять.  Не каждыы знает и не разберется в обработке и терминах процессора. 
Я бы не пользовался онлайн, а сделал проще -  муз. базу прогнал в оффлайн обработке и вопрос снят. Например, Samplitude или в др.
Если хочешь вообще классный звук был "FM" то однозначно Sonos, StereoTool ну или в конце концов Sam  )
Вопрос вообще не вижу сложным.  всё делается на раз-два-три ...  программным путем. 
Про обработку Аппаратными средствами здесь на форуме нет смысла говорить )

про нагрузку ... раньше пятерка р/станций (DFM/Mcarlo/Maximum/русское Р/) вещали в интернет с Windows media server
сейчас не знаю ... надо смотреть ихнии потоки ...

Вот в чем я с вами соглашусь на 100% так это только в ценовой политики этих двух платформ. Тут без компромиисоов - *nix

так что gyurgin_1_3 ...как юзал свой  bigtunesradio.com на никсах так и продолжай дальше ... сайт скатился до "просто плеер"...смысл потихоньку сходит на нет ....   рекламой бы лучше занялся своего проекта ...

Сорри, опять сменил ник, теперь без лохинзы, это железно будет мой))
Да о массштабном предоставлении услуг речи нет, сделали лендинг чтобы просто демонстрировать что такое возможно.
Пресеты - понятно надо, но это тесты, время которого катастрофически не хвататет и где то просто лень.
Вобще это одна из частей массштабного приложения для радиохостинга и все доводки потом, кто захочет использовать сейас и тем самым станет тестером получит полную поддержку и ему все настроят в лучшем виде.
Было время - шпарили (а в интросетях наверняка логгеры играют на windows media, ну потому что удобно).
За Бигтюнс не надо мне - отрабатываем синдикации еле еле - опять таки некому заниматься серьезно, да и не горит.
Просто плеер скоро сменю на непросто плеер, и вобще он превратился в тестовый и "повещать для своих", зато в отличие от многих имеет свой подкаст и кучу плюшек на субдоменах.
Поймите - я не против винды, в плане генерации контента варианта ПРОЩЕ и ДОСТУПНЕЙ не придумать, хотя тут конечно для меня примари, да и наверно существует только Джин который увы не всем по карману и обсуждать тут нам нечего.

Отредактировано gyurgin_ (10-09-2016 20:09:15)

1,220

Re: liquidsoap

для любительского и полупрофессионального интернет-радио radioboss уже дорос до уровня Джина ...  и цена в 3000 руб )

1,221

Re: liquidsoap

Ну я не пользовал давно, это хорошо что ребята растут, но до воспроизведения с точностью до фреймов я думаю еще далеко.
Я делал linux плеер который принимает xml джина - даже не сомневаюсь, radioboss пока не дотянет и до этого.
Еще раз - очень радуюсь за ребят, даже готов подобное для них исполнить в обмен на лицензию, надо будет предложить))

1,222

Re: liquidsoap

Здравствуйте. Интересно, тема ещё жива? Ладно, не об этом.

Потребовался мне, значит, liquidsoap/1.2.1, потому что он умеет FDK-AAC. Я использую выдачу аудиопотока напрямую (без Icecast, используя output.harbor), и всегда (читай на версии 1.1.1) всё работало хорошо, в том числе и метаданные. После обновления до 1.2.1 метаданные (ICY-заголовки) посылаться перестали. От слова вообще. Конфиг-скрипт при этом не менял. Метаданные перестали посылаться как на вновь настроенном AAC-потоке, так и на тех, что были в MP3. Всячески пытался их вернуть — безуспешно. Кто сталкивался? Как лечить? Я даже создал issue в репозитории мыла, но сомневаюсь, что мне ответят.

Няя :3

1,223

Re: liquidsoap

Вам наверняка предложат поставить liquidsoap через opam, так диагностировать и лечить проще. А вообще выдачу

liquidsoap --list-plugins

смотрите - все ли там на месте.

1,224

Re: liquidsoap

все ли там на месте

А что должно быть? Вот мой список плагинов, версия 1.2.1+scm

Отредактировано namikiri (02-11-2016 14:49:49)

Няя :3

1,225

Re: liquidsoap

Все на месте, что у Вас там в output.harbor, или сами смотрите

liquidsoap -h output.harbor

, не все же наверняка пробовали.