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

Liquidsoap rotate работает не правильно

 

4
discoroveryx @discoroveryx
Объясните мне тупому
plout = rotate(weights = [1, 2], [plpromo, plmain]) #1 промо, 2 трека
Но ликвидсоап думает по другому, как хочет так и играет
Весь конфиг

stationname="***"

out = output.icecast(
host = "127.0.0.1",
port = 8000,
password = "***",
encoding = "UTF-8",
name = "***",
genre = "***",
url = "http://#{stationname}",
)

homeradio = "/home/radiocontent" #домашняя категория
dirtracks = "#{homeradio}/tracks" #каталог с треками
dirpromo = "#{homeradio}/promo" #каталог информационными вставками


plmain = playlist(mode="randomize", reload=360, "#{dirtracks}") # перечитывает каталогл без плейлиста
plpromo = playlist(mode="randomize", reload=360, "#{dirpromo}")

plmain = crossfade(start_next=5., fade_out=3., fade_in=3., plmain) #затухание переходов

plout = rotate(weights = [1, 2], [plpromo, plmain]) #1 промо, 2 трека

#изминение metadata
def appendmeta(m) =
artist = m["artist"]
title = m["title"]
[
("artist", if artist=="" then "Live #{stationname}" else "#{artist}" end),
("title", if title=="" then "radiostation" else "#{title} - #{stationname}" end)
]
end
plout = map_metadata(appendmeta, plout)


#чтение metadata и запись в бд
def myshowmeta(m) =
artist = m["artist"]
title = m["title"]
print("Now playing: #{artist}, #{title}")
system("redis-cli PUBLISH metadata '#{artist}:#{title}'")
end
plout = on_metadata(myshowmeta,plout)



out(%mp3(bitrate=320, stereo=true), description = "HH320", mount = "hhf", mksafe(plout))



логи

2016/03/03 08:58:59 [promo:3] Finished with "/home/radiocontent/promo/\209\133\208\184\208\191-\209\133\208\190\208\191 \208\178 \209\130\208\178\208\190\208\188 \208\186\208\176\209\128\208\188\208\176\208\189\208\181 \226\128\147 \209\133\208\184\208\191-\209\133\208\190\208\191 \208\178 \209\130\208\178\208\190\208\188 \208\186\208\176\209\128\208\188\208\176\208\189\208\181.mp3".
2016/03/03 08:58:59 [tracks:3] Prepared "/home/radiocontent/tracks/DKT \208\150\208\164 \226\128\147 \208\191\208\187\208\181\208\188\209\143 \208\180\209\139\208\188\208\176 (\209\129\208\177\208\190\209\128\208\189\208\184\208\186 \208\187\208\181\209\135\208\181\208\177\208\189\208\176\209\143 \208\179\209\128\209\143\208\183\209\140).mp3" (RID 3).
2016/03/03 08:58:59 [promo:3] Prepared "/home/radiocontent/promo/\209\133\208\184\208\191-\209\133\208\190\208\191 \208\178 \209\130\208\178\208\190\208\188 \208\186\208\176\209\128\208\188\208\176\208\189\208\181 \226\128\147 \209\133\208\184\208\191-\209\133\208\190\208\191 \208\178 \209\130\208\178\208\190\208\188 \208\186\208\176\209\128\208\188\208\176\208\189\208\181.mp3" (RID 4).
2016/03/03 08:58:59 [decoder:3] Method "MAD" accepted "/home/radiocontent/promo/\209\133\208\184\208\191-\209\133\208\190\208\191 \208\178 \209\130\208\178\208\190\208\188 \208\186\208\176\209\128\208\188\208\176\208\189\208\181 \226\128\147 \209\133\208\184\208\191-\209\133\208\190\208\191 \208\178 \209\130\208\178\208\190\208\188 \208\186\208\176\209\128\208\188\208\176\208\189\208\181.mp3".
2016/03/03 08:58:59 [stdout:3] Now playing: Live radio.rrrrrrrrr.ru, radiostation
2016/03/03 08:58:59 [stdout:3] 0
2016/03/03 08:59:10 [promo:3] Finished with "/home/radiocontent/promo/\209\133\208\184\208\191-\209\133\208\190\208\191 \208\178 \209\130\208\178\208\190\208\188 \208\186\208\176\209\128\208\188\208\176\208\189\208\181 \226\128\147 \209\133\208\184\208\191-\209\133\208\190\208\191 \208\178 \209\130\208\178\208\190\208\188 \208\186\208\176\209\128\208\188\208\176\208\189\208\181.mp3".
2016/03/03 08:59:10 [promo:3] Prepared "/home/radiocontent/promo/\209\133\208\184\208\191-\209\133\208\190\208\191 \208\178 \209\130\208\178\208\190\208\188 \208\186\208\176\209\128\208\188\208\176\208\189\208\181 \226\128\147 \209\133\208\184\208\191-\209\133\208\190\208\191 \208\178 \209\130\208\178\208\190\208\188 \208\186\208\176\209\128\208\188\208\176\208\189\208\181.mp3" (RID 5).
2016/03/03 08:59:10 [quota_4712:3] Switch to cross_4707 with forgetful transition.
2016/03/03 08:59:10 [stdout:3] Now playing: Live radio.rrrrrrrrr.ru, radiostation
2016/03/03 08:59:10 [stdout:3] 0
2016/03/03 09:01:19 [decoder:3] Method "MAD" accepted "/home/radiocontent/tracks/BARTRU feat. \208\150\208\164, \208\148\208\190\208\183\208\176, \208\161\208\190\208\189\208\179(\208\165\208\176\209\130\209\133\209\131\209\128 \208\151\209\131) \226\128\147 \208\160\209\131\208\186\208\184..mp3".
2016/03/03 09:01:29 [tracks:3] Finished with "/home/radiocontent/tracks/DKT \208\150\208\164 \226\128\147 \208\191\208\187\208\181\208\188\209\143 \208\180\209\139\208\188\208\176 (\209\129\208\177\208\190\209\128\208\189\208\184\208\186 \208\187\208\181\209\135\208\181\208\177\208\189\208\176\209\143 \208\179\209\128\209\143\208\183\209\140).mp3".
2016/03/03 09:01:29 [tracks:3] Prepared "/home/radiocontent/tracks/BARTRU feat. \208\150\208\164, \208\148\208\190\208\183\208\176, \208\161\208\190\208\189\208\179(\208\165\208\176\209\130\209\133\209\131\209\128 \208\151\209\131) \226\128\147 \208\160\209\131\208\186\208\184..mp3" (RID 6).
2016/03/03 09:01:29 [stdout:3] Now playing: BAR&TRU feat.ÆÔ,Äîçà, Ñîíã(Õàò, Ðóêè. - radio.rrrrrrrrr.ru
2016/03/03 09:01:29 [stdout:3] 0
2016/03/03 09:05:44 [tracks:3] Loading playlist...
2016/03/03 09:05:44 [decoder:3] Method "MAD" accepted "/home/radiocontent/tracks/XRAVEN \226\128\147 \208\145\208\149\208\147\208\163\208\157\208\158\208\154 \208\191.\209\131. \208\161\209\130\208\176\209\129\208\148\208\184 \208\188\209\131\208\183.\208\161\209\130\208\176\209\129\208\148\208\184.mp3".
2016/03/03 09:05:44 [tracks:3] Playlist is a directory.
2016/03/03 09:05:44 [tracks:3] Successfully loaded a playlist of 47 tracks.
2016/03/03 09:05:44 [decoder:3] Method "MAD" accepted "/home/radiocontent/tracks/XRAVEN \226\128\147 \208\164\208\144\208\157\208\162\208\158\208\156 \208\191.\209\131. Grodilagro \208\188\209\131\208\183.NUKE BEAT LAB.mp3".
2016/03/03 09:05:54 [tracks:3] Finished with "/home/radiocontent/tracks/BARTRU feat. \208\150\208\164, \208\148\208\190\208\183\208\176, \208\161\208\190\208\189\208\179(\208\165\208\176\209\130\209\133\209\131\209\128 \208\151\209\131) \226\128\147 \208\160\209\131\208\186\208\184..mp3".
2016/03/03 09:05:54 [tracks:3] Prepared "/home/radiocontent/tracks/XRAVEN \226\128\147 \208\164\208\144\208\157\208\162\208\158\208\156 \208\191.\209\131. Grodilagro \208\188\209\131\208\183.NUKE BEAT LAB.mp3" (RID 9).
2016/03/03 09:05:54 [stdout:3] Now playing: Live radio.rrrrrrrrr.ru, radiostation
2016/03/03 09:05:54 [stdout:3] 0
2016/03/03 09:08:32 [decoder:3] Method "MAD" accepted "/home/radiocontent/tracks/\208\161\208\176\209\136\208\176 \208\156\208\181\208\187 \226\128\147 \208\160\208\190\208\183\208\176 \208\189\208\181 \208\183\208\176\208\188\208\181\209\128\208\183\208\176\208\185.mp3".
2016/03/03 09:08:41 [tracks:3] Finished with "/home/radiocontent/tracks/XRAVEN \226\128\147 \208\164\208\144\208\157\208\162\208\158\208\156 \208\191.\209\131. Grodilagro \208\188\209\131\208\183.NUKE BEAT LAB.mp3".
2016/03/03 09:08:41 [tracks:3] Prepared "/home/radiocontent/tracks/\208\161\208\176\209\136\208\176 \208\156\208\181\208\187 \226\128\147 \208\160\208\190\208\183\208\176 \208\189\208\181 \208\183\208\176\208\188\208\181\209\128\208\183\208\176\208\185.mp3" (RID 10).
2016/03/03 09:08:41 [stdout:3] Now playing: Саша Мел, Роза не замерзай - radio.rrrrrrrrr.ru
2016/03/03 09:08:41 [stdout:3] 0


382
Grigorij @gyurgin_1
Совершенно непонятно зачем перечитывать папки каджые 6 минут, если бы еще вместо randomize был random... да и то без check_next random может и повторить треки. К тому же я совершенно не уверен что с любым из вариантов liquidsoap подхватит изменения в папках.
Посоветовать могу одно, - используйте request.dynamic, скрипт для выдачи треков с любой абсолютно логикой поведения, с возможностью записи данных в БД, возможностью подготовки метаданных написать куда как проще, чем ставить эксперименты над liquidsoap.

382
Grigorij @gyurgin_1
А, кажется я понял почему reload=360, видимо подразумевалось перетасовать содержимое папки, как доиграет до конца, - перечитать, укажите тогда reload_mode="rounds", а mode="randomize" - значение по умолчанию, можно выкинуть.

4
discoroveryx @discoroveryx
gyurgin_1 пишет:

А, кажется я понял почему reload=360, видимо подразумевалось перетасовать содержимое папки, как доиграет до конца, - перечитать, укажите тогда reload_mode="rounds", а mode="randomize" - значение по умолчанию, можно выкинуть.


Пусть читает хоть рандом хоть по порядку, проблема в другом
plout = rotate(weights = [1, 2], [plpromo, plmain]) #1 промо, 2 трека
Согласно этой конфе он должен проиграть 1 промо и 2 трека, но этого не происходит он просто играет треки

4
discoroveryx @discoroveryx
В общем вся проблема в
plmain = crossfade(start_next=5., fade_out=3., fade_in=3., plmain) #затухание переходов
Если комментировать эту строку, то ротация начинает работать нормаль так как хочется 1 промо 2 трека, но если включить crossfade начинается бред, как правильно пользоваться crossfade?

382
Grigorij @gyurgin_1
Я так понимаю мой совет насчет request.dynamic пролетел мимо, ну продолжайте дальше эти беспощадные эксперименты, не Вы первый, не Вы последний наступаете на эти грабли. liquidsoap -h rotate и liquidsoap -h crossfade в помощь.