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

liquidsoap

 

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

и если файл начинается с #!/usr/bin/liquidsoap то при запуске не надо добавлять liquidsoap -c, просто дать файлу права на запуск и запускать сразу его

419
gyurgin_ @gyurgin_
Да я не понимаю какого хрена под sudo?

23
sergey_iron @sergey_iron
ребят, че то я намучался с супом....
Скажите, достаточно ли будет мне программы Ices для того, чтобы музыка играла 24\7 нон стопом?
Насколько запаристо будет добалять/удалять новые песни?
И возможно ли будет сделать 4 разбивки по времени: утро, день, вечер, ночь?

245
radio_good @radio_good
Скажите, достаточно ли будет мне программы Ices для того, чтобы музыка играла 24\7 нон стопом?

да
Насколько запаристо будет добалять/удалять новые песни?

физически добавить не сложно, сложно будет запустить их в ротацию для Ices . для этого нужно пересоздать Плейлист и перезапустить ices
И возможно ли будет сделать 4 разбивки по времени: утро, день, вечер, ночь?
для ices - нет, не возможно без шаманства и "пятого колеса"
\

для ваших целей подойдет например Centovacast от ru-hoster всяко лучше и дешевле выйдет чем вы будете юзать VPS от 250 руб/мес.

Отредактировано radio_good - 31.03.2017
23
sergey_iron @sergey_iron
radio_good пишет:

Скажите, достаточно ли будет мне программы Ices для того, чтобы музыка играла 24\7 нон стопом?

да
Насколько запаристо будет добалять/удалять новые песни?

физически добавить не сложно, сложно будет запустить их в ротацию для Ices . для этого нужно пересоздать Плейлист и перезапустить ices
И возможно ли будет сделать 4 разбивки по времени: утро, день, вечер, ночь?
для ices - нет, не возможно без шаманства и "пятого колеса"
\

для ваших целей подойдет например Centovacast от ru-hoster всяко лучше и дешевле выйдет чем вы будете юзать VPS от 250 руб/мес.


Я погуглю насчет этих программ.
А может ли мне кто нибудь помочь с супом?

4
scarred @scarred
sergey_iron пишет:


А может ли мне кто нибудь помочь с супом?

я иногда гоняю музон с помощью liquidsoap, простейшая конструкция, radiostart.liq:
#!/usr/bin/liquidsoap

set("log.file",false)
# Log dir
set("log.file.path", "/home/zz999/Загрузки/Radio.log")

# Music
myplaylist = mksafe(normalize(playlist("/home/zz999/Музыка/playlist.txt")))

# Start building the feed with music
radio = myplaylist

output.icecast(
%mp3(bitrate=128),
host = "stream.radio-hosting.net",
port = 8000,
name = "scarred",
description = "liquidsoap_mp3",
genre = "various",
url = "http://stream.radio-hosting.net:8000/scarred",
password = "xxxxxxxxxxxxxxxx",
mount = "scarred",
radio
)

лог отключен, хост бесплатный, пароль можно сразу свой указать на странице регистрации, запускать можно по-разному, я просто указываю путь в xfrun(Alt+F2) - /home/zz999/radiostart.liq, самоконтроль - консольный плеер mocp, ссылка на поток в конфиге выше, создать плейлист, пишу как есть у меня:
$ find /media/zz999/A39A7D50044FD2C2/'my_music(repack_selene)' -name '*.mp3' -exec echo '{}' \; > /home/zz999/Музыка/playlist.txt
система - Debian 8.
P.S. для такой простой задачи ранее использовал ezstream, ices0, дебианский ices2 не поддерживает mp3, потому не годен для меня...
еще одна деталь - icecast сервер там не "понимает" кириллицу, поэтому у меня все теги версии ID3v2.3(ID3v2.4) и переведены в транслит, иначе "кракозяблики" увидим, ну и другой повод для транслитерации - плеер "железный" в автомобиле тоже не знает кириллицу.
не забывайте выполнить:
$ chmod u+x radiostart.liq

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

Отредактировано scarred - 02.04.2017
4
scarred @scarred
sergey_iron
**********
немного сложнее вариант, с 2-ух листов, на одном - "запад", на втором - "наше", через одну)))
#!/usr/bin/liquidsoap

set("log.file",false)
# Log dir
set("log.file.path", "/home/zz999/Загрузки/Radio.log")

# Music
myplaylist = mksafe(normalize(playlist(reload=1, reload_mode="rounds", mode="randomize", "/home/zz999/Музыка/playlist.txt")))

# Some playlist2
playlist2 = mksafe(normalize(playlist(reload=1, reload_mode="rounds", mode="randomize", "/home/zz999/Музыка/playlist2.txt")))

# Start building the feed with music
radio = myplaylist

# Now add some playlist2
radio = rotate(weights = [1, 1],[playlist2, radio])

output.icecast.........................................................
..................................................................................
.................................................................................


Отредактировано scarred - 04.04.2017
419
gyurgin_ @gyurgin_
Господа, ну сколько можно колхозить и изобретать, давно же понятно что request.dynamic делает все что надо?
Один liq скрипт, один выдающий - все.

4
scarred @scarred
gyurgin_ пишет:

Господа, ну сколько можно колхозить и изобретать, давно же понятно что request.dynamic делает все что надо?
Один liq скрипт, один выдающий - все.

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

Отредактировано scarred - 12.04.2017
419
gyurgin_ @gyurgin_
scarred пишет:


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

Не надо вот, в документации на сайте есть и пример и описание.
Давно всем создатели программы объясняли - хочешь полный контроль - нате вот вот, хочешь чтобы что то как то играло - вот.
Если проблема вычитать доки, - это Ваша проблема.
Пойдете по правильному пути и есть минимальные навыки программирования - подскажу и поддержу.
Хотите нахаляву чтоб Вам сделали - ну ждите, может кто поделится.

4
scarred @scarred
gyurgin_ пишет:


Хотите нахаляву чтоб Вам сделали - ну ждите, может кто поделится.

я ничего не просил, где ты просьбу увидел?

Отредактировано scarred - 12.04.2017
419
gyurgin_ @gyurgin_
Администрация - три пункта правил дите нарушило - отправьте куда нить с глаз долой.

18
Максим @Maksim_CHaykin
Добрый день!
Использую этот код для вставки джинглов в поток, можно ли уменьшить громкость вставок?
def smooth_add(~delay=0.5,~p=0.2,~normal,~special)
d = delay
fade.final = fade.final(duration=d*2.)
fade.initial = fade.initial(duration=d*2.)
q = 1. - p
c = amplify
fallback(track_sensitive=false,
[special,normal],
transitions=[
fun(normal,special)->
add(normalize=false,
[c(p,normal),
c(q,fade.final(type="sin",normal)),
sequence([blank(duration=d),c(q,special)])]),
fun(special,normal)->
add(normalize=false,
[c(p,normal),
c(q,fade.initial(type="sin",normal))])
])
end

2
xolodok @xolodok
Добрый день!

Возможно ли запустить несколько десятков каналов?
Какое железо для этого надо?
Будет один плейлист (возможно несколько по расписанию) и по времени должны вставляться промо ролики. Треки и ролики будет отдавать пхп скрипт.

419
gyurgin_ @gyurgin_
Да сколько угодно можно запустить, на каждый канал по конфигу и все дела. Какое железо Вам никто не скажет, слишком много факторов влияют. Делайте тесты на том что есть в наличии, чего тут гадать...

2
xolodok @xolodok
Сколько угодно не получилось запустить. На 30 каналах проц. за 90% уходит и в логах выдает "we must catch up ...". Все это дело запускал на vds (проц. - Intel Xeon E5-2630 2 ядра, RAM - 6Gb). Конфиг тестил простой - один плейлист, треки отдает пхп скрипт. Возможно ли мне все таки запустить до сотни каналов, если взять железо получше?

245
radio_good @radio_good
ну, сотня .... тебе нужен уж тогда какой-нибудь 8-ядерный ксенон ...
на форуме думаю спецов таких тут нет по такой нагрузке серверов ... остается лишь только опытным путем тестить .. и арифметикой.

Отредактировано radio_good - 20.09.2017
24
IceJOKER @IceJOKER
Здравствуйте, такая проблема, не могу запустить радио без mksafe, пишет, что source is fallible, НО мне нужно, чтоб вещание отвалилось как только source отвалится, чтоб отловить эту ошибку и исправить.
Сейчас у меня работает скрипт, который проверяет доступность радио и он всегда думает, что радио работает даже если оно отвалилось и там идет пустое вещание

24
IceJOKER @IceJOKER
Все, вопрос неактуален, нашел fallible=true параметр)

2
Raschen @Raschen
Я в надежде что остались еще люди кто сюда заходит и ответит на мои вопросы
1. Как сделать чтоб резко трек не обрывался когда ставлю track_sensitive = false а затухал
2. При track_sensitive = true трек доигрывает но на следущий плейлист не переходит

music = switch(track_sensitive = false,
[
({ 15h35m00s - 15h44m59s }, play1),
({ 15h45m00s - 15h54m59s }, play2),
({ 15h55m00s - 16h04m59s }, play3),
({ 16h05m00s - 16h14m59s }, play4),
({ 16h15m00s - 15h34m59s }, play5)
]))