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

liquidsoap

 

97
aPhone @aPhone
ничего себе .... это как же обычному пользователю там можно собрать все это дело то:(

Добавлено спустя 7 минут 25 секунд:
а если отсюда пакеты установить?
**********

6245
Тарас @tarasian666
в том то и разница между обычным пользователем windows и обычным пользователем linux, последнему надо уметь собирать...

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

Добавлено спустя 1 минуту 19 секунд:
думаете вы установили не оттуда? ))

97
aPhone @aPhone
а вы не могли бы поделиться своей сборкой?

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

48
Amelion @Amelion
народ help
A как сделать? что-бы джинглы играли не между песен, а прям в песне иногда включалися с притушенным звуком музыки или притушенным звуком джингла, в разных местах играющий на данный момент композиции?
Может, кому то удалось это реализовать на Liquidsoap, подскажите куда лезть в кроссфейд?

6245
Тарас @tarasian666
ищите в примерах на их сайте smooth_add

вот он вроде


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

65
Кирилл @4ell
Недавно установил себе Liquidsoap, вот вопросы возникли
не могу понять рандом, допустим я пишу
random(weights = [1, 4], [jingles, myplaylist])
джингл будет вставляться после каждой 4-ой песни или образуется каша в которой будет 20% джинглов и 80% песен?
и как тогда сделать чтоб после каждой 4 песни играл джингл без всяких там вероятностей?
при использовании функции cross массив с песнями становится одним треком или cross просто присваивает песне значения fade.in fade.out?
как можно сделать чтоб джингл смешиваясь с песней не менял своей громкости?

6245
Тарас @tarasian666
если получаеться каша надо пробовать делать рандум по отдельности а тогда уже делать rotate(weights=[1,4], [jingles, songs])

crossfade работает как кросфейд и ничего не смешивает в один трек

см пост выше, только настроить под себя

65
Кирилл @4ell
за rotate спасибо, но все равно рандум както странно себя ведет
afternoon = random(weights = [5, 2, 2], [hot, cooled, new])
если хотя бы один из плейлистов (hot, cooled, new) пустой то и afternoon пустой
как с этим бороться?

6245
Тарас @tarasian666
если mksafe не помагает тогда делать fallback на другой плейлист

65
Кирилл @4ell
оказывается mksafe и playlist.safe разные вещи...
еще вопрос,
myplaylist = switch([({7h-12h}, morning), ({12h-18h}, afternoon)])
по идее myplaylist присваивается один раз либо morning либо afternoon
или я ошибаюсь и когда наступит 12 часов myplaylist поменяется на afternoon?

6245
Тарас @tarasian666
незнаю не пробовал )

32
Danila @Danila
Всем доброго времени суток, спасибо, ребята, мне даже не пришлось писать Ben, I need help, это Данила,
всT поставил на debian 6.0 + icecast 2.3.2 + liquidsoap 0.9.2 выкладываю свои конфиги




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

# загружаем плейлист - папку с *.ogg
myplaylist = mksafe(playlist("/home/kolia/radio/music"))

# загружаем джинглы - папку с *.ogg
jingles = playlist("/home/kolia/radio/jingles")

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

# что-бы джинглы играли не между песен, а прям в песне иногда включалися с притушенным звуком музыки
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

#запускаем вещалку
output.icecast.vorbis(
host = "localhost", port = 8001,
password = "pass", mount = "radio.ogg", radio)

6245
Тарас @tarasian666
немного неправильно ))

функцию задекларировали но не использовали

9
Ri0z @Ri0z
Всем привет... мне этот форум очень помог так и я поогу....
выкладываю кусок кода для системы запроов...

#Система запросов
requests = request.dynamic(id="scheduler",default_duration=30.,length=1.,{request(get_process_output("Пуь до файли скрипта"))})

switch = fallback([requests,play])


а скрипт написать сами сможете)

6245
Тарас @tarasian666
я такой системой тоже пользуюсь ) только у меня постоянно берет треки из request.dynamic а там скрипт уже работает с mysql и тд

32
Danila @Danila
tarasian666 пишет:

немного неправильно ))

функцию задекларировали но не использовали

действительно, только сейчас заметил (на радостях жизни, что всё запустилось забыл проверить) =))), подскажите пожалуйста что именно нужно поправить, заранее спасибо =)

6245
Тарас @tarasian666
вот с оф сайта

# One for dynamic jingles, mixed on top of the stream with smooth starts/ends.
jingles_dyn = jingle_meta(playlist(reload=3600,root^"jingles.dynamic"))
jingles_dyn = fallback([request.queue(id="dynq"),jingles_dyn])
s = smooth_add(normal=s,special=switch([({ 0m0s or 30m0s }, jingles_dyn)]))

32
Danila @Danila
вот что выдаёт =)
Stopping channels: radio.pid OK
Starting channels: radio.liq At line 45, char 26: unbound symbol jingle_meta.
OK

6245
Тарас @tarasian666
ну я не весь код вставил, там еще просто изменение тегов во время проигрывания джинглов
отсюда вот код **********