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

liquidsoap

 

6245
Тарас @tarasian666
можно просто папку

5
k-makarov @k-makarov
tarasian666 пишет:

можно просто папку

действительно. Функция playlist работает и с папками. Спасибо

5
k-makarov @k-makarov
Оттестив скрипт на девелоперской машине и обрадовавшись своему новому инструменту для стриминга, я решил испробовать его в продакшене вместо Mixxx плеера. И тут меня поставила в тупик такая проблема - на vds сервере у меня нет звуковой карты. В Mixxx я использовал asio4all в качестве звукового устройства, что позволяло ему нормально воспроизводить звук на нем и стримить на icecast. Тут же, как я понимаю, liquidsoap стримит используя выбранную в Windows звуковую карту, которой естественно нет на Hyper-V сервере. Ну и при попытке стримить я просто вижу, что на icecast появляется mount point, в которую стримится тишина.

Вот сам скрипт:

out = output.icecast(
host = "127.0.0.1",
port = 8000,
user = "dj",
password = "test",
name = "Test name",
encoding = "UTF-8"
)

wd = "C:/Users/Administrator/Desktop"
pl = "#{wd}/dreamsoundstation"
tech = "#{pl}/technical"

set("log.file.path","#{tech}/liquidsoap.log")
set("log.level", 3)

promo_dir = "#{pl}/promo"

ef = "#{pl}/efir"

ni = "#{ef}/night"
mo = "#{ef}/morning"
da = "#{ef}/daytime"
ev = "#{ef}/evening"

mus_ni_dir = "#{ni}/music"
mus_mo_dir = "#{mo}/music"
mus_da_dir = "#{da}/music"
mus_ev_dir = "#{ev}/music"

jin_ni_dir = "#{ni}/jingles"
jin_mo_dir = "#{mo}/jingles"
jin_da_dir = "#{da}/jingles"
jin_ev_dir = "#{ev}/jingles"

mus_ni = playlist (reload = 360, "#{mus_ni_dir}")
mus_mo = playlist (reload = 360, "#{mus_mo_dir}")
mus_da = playlist (reload = 360, "#{mus_da_dir}")
mus_ev = playlist (reload = 360, "#{mus_ev_dir}")

jin_ni = playlist (reload = 360, "#{jin_ni_dir}")
jin_mo = playlist (reload = 360, "#{jin_mo_dir}")
jin_da = playlist (reload = 360, "#{jin_da_dir}")
jin_ev = playlist (reload = 360, "#{jin_ev_dir}")

promo = playlist (reload = 360, "#{promo_dir}")

ins_ni = rotate (weights = [2, 1], [jin_ni, promo])
ins_mo = rotate (weights = [2, 1], [jin_mo, promo])
ins_da = rotate (weights = [2, 1], [jin_da, promo])
ins_ev = rotate (weights = [2, 1], [jin_ev, promo])

ni = rotate (weights = [3, 1], [mus_ni, ins_ni])
mo = rotate (weights = [3, 1], [mus_mo, ins_mo])
da = rotate (weights = [3, 1], [mus_da, ins_da])
ev = rotate (weights = [3, 1], [mus_ev, ins_ev])

radio = switch (track_sensitive = true,
[
({ 0h - 6h }, ni),
({ 6h - 12h }, mo),
({ 12h - 18h }, da),
({ 18h - 0h }, ev)
])

radio = crossfade(start_next=1., fade_out=1., fade_in=1., radio)

out(
%mp3(bitrate = 320, id3v2 = true),
description = "MP3 320 Kbps",
mount = "main",
mksafe(radio)
)


А вот лог:

2015/06/20 00:47:07 >>> LOG START
2015/06/20 00:47:07 [protocols.external:3] Didn't find "ufetch".
2015/06/20 00:47:07 [protocols.external:3] Didn't find "wget".
2015/06/20 00:47:07 [main:3] Liquidsoap 1.0.1-win32
2015/06/20 00:47:07 [main:3] Using: graphics=[distributed with Ocaml] pcre=0.1.0 dtools=0.3.0 duppy=0.4.2 cry=0.2.2 mm=0.2.0 xmlplaylist=0.1.3 lastfm=0.3.0 ogg=0.4.3 vorbis=0.6.1 speex=0.2.0 mad=0.4.4 flac=0.1.1 flac.ogg=0.1.1 dynlink=[distributed with Ocaml] lame=0.3.1 aacplus=0.2.0 theora=0.3.0 schroedinger=0.1.0 gavl=0.1.4 ao=0.2.0 taglib=0.2.0 camomile=0.8.1 faad=0.3.0 yojson=1.0.2
2015/06/20 00:47:07 [frame:3] Using 44100Hz audio, 25Hz video, 44100Hz master.
2015/06/20 00:47:07 [frame:3] Frame size must be a multiple of 1764 ticks = 1764 audio samples = 1 video samples.
2015/06/20 00:47:07 [frame:3] Targetting 'frame.duration': 0.04s = 1764 audio samples = 1764 ticks.
2015/06/20 00:47:07 [frame:3] Frames last 0.04s = 1764 audio samples = 1 video samples = 1764 ticks.
2015/06/20 00:47:07 [threads:3] Created thread "generic queue #1".
2015/06/20 00:47:07 [threads:3] Created thread "generic queue #2".
2015/06/20 00:47:07 [music:3] Loading playlist...
2015/06/20 00:47:07 [music:3] Playlist is a directory.
2015/06/20 00:47:07 [music:3] Successfully loaded a playlist of 31 tracks.
2015/06/20 00:47:07 [jingles:3] Loading playlist...
2015/06/20 00:47:07 [jingles:3] Playlist is a directory.
2015/06/20 00:47:07 [jingles:3] Got an empty list: keeping the old one.
2015/06/20 00:47:07 [promo:3] Loading playlist...
2015/06/20 00:47:07 [promo:3] Playlist is a directory.
2015/06/20 00:47:07 [promo:3] Got an empty list: keeping the old one.
2015/06/20 00:47:07 [music:3] Loading playlist...
2015/06/20 00:47:07 [music:3] Playlist is a directory.
2015/06/20 00:47:07 [music:3] Successfully loaded a playlist of 20 tracks.
2015/06/20 00:47:07 [jingles:3] Loading playlist...
2015/06/20 00:47:07 [jingles:3] Playlist is a directory.
2015/06/20 00:47:07 [jingles:3] Got an empty list: keeping the old one.
2015/06/20 00:47:07 [music:3] Loading playlist...
2015/06/20 00:47:07 [music:3] Playlist is a directory.
2015/06/20 00:47:07 [music:3] Successfully loaded a playlist of 41 tracks.
2015/06/20 00:47:07 [jingles:3] Loading playlist...
2015/06/20 00:47:07 [jingles:3] Playlist is a directory.
2015/06/20 00:47:07 [jingles:3] Got an empty list: keeping the old one.
2015/06/20 00:47:07 [music:3] Loading playlist...
2015/06/20 00:47:07 [music:3] Playlist is a directory.
2015/06/20 00:47:07 [music:3] Successfully loaded a playlist of 42 tracks.
2015/06/20 00:47:07 [jingles:3] Loading playlist...
2015/06/20 00:47:07 [jingles:3] Playlist is a directory.
2015/06/20 00:47:07 [jingles:3] Got an empty list: keeping the old one.
2015/06/20 00:47:07 [main:3] Connecting mount main for dj@127.0.0.1...
2015/06/20 00:47:07 [decoder:3] Method "MAD" accepted "C:/Users/Administrator/Desktop/dreamsoundstation/efir/evening/music/08 Never Strangers.mp3".
2015/06/20 00:47:07 [decoder:3] Method "MAD" accepted "C:/Users/Administrator/Desktop/dreamsoundstation/efir/daytime/music/07 - Smile when you smile.mp3".
2015/06/20 00:47:07 [decoder:3] Method "MAD" accepted "C:/Users/Administrator/Desktop/dreamsoundstation/efir/morning/music/05 - Pooma - January.mp3".
2015/06/20 00:47:07 [decoder:3] Method "MAD" accepted "C:/Users/Administrator/Desktop/dreamsoundstation/efir/night/music/01 Machine.mp3".
2015/06/20 00:47:07 [main:3] Connection setup was successful.
2015/06/20 00:47:07 [threads:3] Created thread "wallclock_main" (1 total).
2015/06/20 00:47:07 [clock.wallclock_main:3] Streaming loop starts, synchronized with wallclock.
2015/06/20 00:47:07 [mksafe:3] Switch to safe_blank.
2015/06/20 00:55:27 [main:3] Shutdown started!
2015/06/20 00:55:27 [main:3] Waiting for threads to terminate...
2015/06/20 00:55:27 [main:3] Closing connection...
2015/06/20 00:55:27 [clock.wallclock_main:3] Streaming loop stopped.
2015/06/20 00:55:27 [threads:3] Thread "wallclock_main" terminated (0 remaining).
2015/06/20 00:55:27 [main:3] Cleaning downloaded files...
2015/06/20 00:55:27 >>> LOG END


Начал копать в сторону возможности выбора в liquidsoap звукового устройства для воспроизведения, потом способы подружить его с asio4all. Потратив много времени я так и не нашел решения.

Не знаю, возможно, у кого-нибудь будут идеи по решению моей проблемы.

На всякий случай мой вопрос на с.о. **********

6245
Тарас @tarasian666
вообще то ему не нужна звуковая карта для стриминга, так что пролема в другом.
...
2015/06/20 00:47:07 [jingles:3] Got an empty list: keeping the old one.
...
2015/06/20 00:47:07 [mksafe:3] Switch to safe_blank.

какой-то плейлист или правило не срабатывает и включается тишина

5
k-makarov @k-makarov
tarasian666 пишет:

вообще то ему не нужна звуковая карта для стриминга, так что пролема в другом.
...
2015/06/20 00:47:07 [jingles:3] Got an empty list: keeping the old one.
...
2015/06/20 00:47:07 [mksafe:3] Switch to safe_blank.

какой-то плейлист или правило не срабатывает и включается тишина



хм. Я посчитал, что он игнорирует несработавшие правила. Как раз таки на продакшене я не заполнил все папки музыкой, посчитав это слишком долгим занятием. Спасибо

5
k-makarov @k-makarov
боюсь, что дело в другом. Оставил для теста пока что только наполненные музыкой папки. Лог теперь следующий:


2015/06/22 16:13:33 >>> LOG START
2015/06/22 16:13:33 [protocols.external:3] Didn't find "ufetch".
2015/06/22 16:13:33 [protocols.external:3] Didn't find "wget".
2015/06/22 16:13:33 [main:3] Liquidsoap 1.0.1-win32
2015/06/22 16:13:33 [main:3] Using: graphics=[distributed with Ocaml] pcre=0.1.0 dtools=0.3.0 duppy=0.4.2 cry=0.2.2 mm=0.2.0 xmlplaylist=0.1.3 lastfm=0.3.0 ogg=0.4.3 vorbis=0.6.1 speex=0.2.0 mad=0.4.4 flac=0.1.1 flac.ogg=0.1.1 dynlink=[distributed with Ocaml] lame=0.3.1 aacplus=0.2.0 theora=0.3.0 schroedinger=0.1.0 gavl=0.1.4 ao=0.2.0 taglib=0.2.0 camomile=0.8.1 faad=0.3.0 yojson=1.0.2
2015/06/22 16:13:33 [frame:3] Using 44100Hz audio, 25Hz video, 44100Hz master.
2015/06/22 16:13:33 [frame:3] Frame size must be a multiple of 1764 ticks = 1764 audio samples = 1 video samples.
2015/06/22 16:13:33 [frame:3] Targetting 'frame.duration': 0.04s = 1764 audio samples = 1764 ticks.
2015/06/22 16:13:33 [frame:3] Frames last 0.04s = 1764 audio samples = 1 video samples = 1764 ticks.
2015/06/22 16:13:33 [threads:3] Created thread "generic queue #1".
2015/06/22 16:13:33 [threads:3] Created thread "generic queue #2".
2015/06/22 16:13:33 [music:3] Loading playlist...
2015/06/22 16:13:33 [music:3] Playlist is a directory.
2015/06/22 16:13:33 [music:3] Successfully loaded a playlist of 31 tracks.
2015/06/22 16:13:33 [music:3] Loading playlist...
2015/06/22 16:13:33 [music:3] Playlist is a directory.
2015/06/22 16:13:33 [music:3] Successfully loaded a playlist of 20 tracks.
2015/06/22 16:13:33 [music:3] Loading playlist...
2015/06/22 16:13:33 [music:3] Playlist is a directory.
2015/06/22 16:13:33 [music:3] Successfully loaded a playlist of 41 tracks.
2015/06/22 16:13:33 [music:3] Loading playlist...
2015/06/22 16:13:33 [music:3] Playlist is a directory.
2015/06/22 16:13:33 [music:3] Successfully loaded a playlist of 42 tracks.
2015/06/22 16:13:33 [main:3] Connecting mount main for dj@127.0.0.1...
2015/06/22 16:13:33 [decoder:3] Method "MAD" accepted "C:/Users/Administrator/Desktop/dreamsoundstation/efir/evening/music/07 Lingonberry.mp3".
2015/06/22 16:13:33 [decoder:3] Method "MAD" accepted "C:/Users/Administrator/Desktop/dreamsoundstation/efir/morning/music/01 - Pooma - If May Starts Tomorrow.mp3".
2015/06/22 16:13:33 [decoder:3] Method "MAD" accepted "C:/Users/Administrator/Desktop/dreamsoundstation/efir/night/music/05 Fjords.mp3".
2015/06/22 16:13:33 [decoder:3] Method "MAD" accepted "C:/Users/Administrator/Desktop/dreamsoundstation/efir/daytime/music/09 - Exploding head.mp3".
2015/06/22 16:13:33 [main:3] Connection setup was successful.
2015/06/22 16:13:33 [threads:3] Created thread "wallclock_main" (1 total).
2015/06/22 16:13:33 [clock.wallclock_main:3] Streaming loop starts, synchronized with wallclock.
2015/06/22 16:13:33 [mksafe:3] Switch to safe_blank.


и все также

2015/06/22 16:13:33 [mksafe:3] Switch to safe_blank.


по непонятной мне причине

6245
Тарас @tarasian666
это еще что?
2015/06/22 16:13:33 [protocols.external:3] Didn't find "ufetch".
2015/06/22 16:13:33 [protocols.external:3] Didn't find "wget".

попробуйте сначала по минимуму запустить, например один плейлист без всяких правил и потом наращивать чтоб узнать в чем причина

1
isatokun90 @isatokun90
OpenSuse 13.2 x64

./configure --with-user=user --with-group=users

checking for a BSD-compatible install... /usr/bin/install -c
checking that calling user is not root... configure: error: configure script must not be run with root user!


как исправить? от другого пользователя user пишит что прав нету, вторичная группа root не помогает.

Отредактировано isatokun90 - 22.06.2015
382
Grigorij @gyurgin_1
Читать не умеете? Когда собираем - root только на последнем этапе.

25
djgelius @djgelius
2015/06/28 01:14:57 >>> LOG START
2015/06/28 01:14:57 [protocols.external:3] Didn't find "ufetch".
2015/06/28 01:14:57 [protocols.external:3] Found "/usr/bin/wget".
2015/06/28 01:14:57 [main:3] Liquidsoap 1.0.1
2015/06/28 01:14:57 [main:3] Using: graphics=[distributed with Ocaml] pcre=6.2.5 dtools=0.3.0 duppy=0.4.2 duppy.syntax=0.4.2 cry=0.2.2 mm=0.2.0 xmlplaylist=0.1.3 lastfm=0.3.0 ogg=0.4.3 vorbis=0.6.1 speex=0.2.0 mad=0.4.4 flac=0.1.1 flac.ogg=0.1.1 dynlink=[distributed with Ocaml] lame=0.3.1 gstreamer=0.1.0 voaacenc=0.1.0 theora=0.3.0 schroedinger=0.1.0 gavl=0.1.4 bjack=0.1.3 alsa=0.2.1 ao=0.2.0 samplerate=0.1.1 taglib=0.2.0 magic=0.7.3 camomile=0.8.4 faad=0.3.0 soundtouch=0.1.7 portaudio=0.2.0 pulseaudio=0.1.2 ladspa=0.1.4 dssi=0.1.0 sdl=0.9.0 camlimages=4.0.0 lo=0.1.0 yojson=1.0.3 gd=1.0a5
2015/06/28 01:14:57 [dynamic.loader:3] Loaded dynamic aacplus encoder from /usr/lib/ocaml/aacplus
2015/06/28 01:14:57 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.0.1/plugins/flac.cmxs.
2015/06/28 01:14:57 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.0.1/plugins/cry.cmxs.
2015/06/28 01:14:57 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.0.1/plugins/voaacenc.cmxs.
2015/06/28 01:14:57 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.0.1/plugins/mad.cmxs.
2015/06/28 01:14:57 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.0.1/plugins/faad.cmxs.
2015/06/28 01:14:57 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.0.1/plugins/pulseaudio.cmxs.
2015/06/28 01:14:57 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.0.1/plugins/lame.cmxs.
2015/06/28 01:14:57 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.0.1/plugins/ogg.cmxs.
2015/06/28 01:14:57 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.0.1/plugins/taglib.cmxs.
2015/06/28 01:14:57 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.0.1/plugins/vorbis.cmxs.
2015/06/28 01:14:57 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.0.1/plugins/flac_ogg.cmxs.
2015/06/28 01:14:57 [frame:3] Using 44100Hz audio, 25Hz video, 44100Hz master.
2015/06/28 01:14:57 [frame:3] Frame size must be a multiple of 1764 ticks = 1764 audio samples = 1 video samples.
2015/06/28 01:14:57 [frame:3] Targetting 'frame.duration': 0.04s = 1764 audio samples = 1764 ticks.
2015/06/28 01:14:57 [frame:3] Frames last 0.04s = 1764 audio samples = 1 video samples = 1764 ticks.
2015/06/28 01:14:57 [decoder:3] Method "MAD" accepted "/home/radio/music/jingls/02.mp3".
2015/06/28 01:14:57 [single:3] "/home/radio/music/jingls/02.mp3" is static, resolving once for all...

Подскажите пожалуйста!
Что хочет от меня ошибок не выдает в конфиге!
#!/etc/liquidsoap -d
set("init.daemon",true)
set("init.daemon.pidfile",false)
set("log.file.path","/var/log/liquidsoap/basic.log")
set("log.stdout",true)
set("log.level",3)
pathToSocket="/etc/liquidsoap/liquidsoap.pid";
set("server.socket",true);
set("server.socket.path",pathToSocket);
set("server.socket.permissions",511)

def crossfade_live(a,b)
add(normalize=false,
[ sequence([ blank(duration=6.),
fade.initial(duration=10.,b) ]),
fade.final(duration=8.,a) ])
end
def transition(j,a,b)
add(normalize=false,
[ fade.initial(b),
sequence(merge=true,
[blank(duration=1.),j,fallback([])]),
fade.final(a) ])
end
def get_djsilere() =
uri = get_process_output("php /home/radio/scripts/request.php /home/radio/music/djsilere") # К запросу добавили имя папки с радиошоу
print("next track: #{uri}")
request.create(uri)
end
def get_alexnegniy() =
uri = get_process_output("php /home/radio/scripts/request.php /home/radio/music/alexnegniy") # К запросу добавили имя папки с радиошоу
print("next track: #{uri}")
request.create(uri)
end

myplaylist = mksafe(playlist(reload=360, '/home/radio/music/nonstop/'))
radio = myplaylist
radio = mksafe(radio)

djsilere = request.dynamic(id="djsilere",length=10.,get_djsilere)
alexnegniy = request.dynamic(id="alexnegniy",length=10.,get_alexnegniy)

jingle = single("/home/radio/music/jingls/02.mp3") # Джингл

radio = switch([ ({0h-20h and 22h-23h}, radio), ({3w1h25m-3w2h25m}, djsilere), ({4w21h-4w22h}, alexnegniy) ])

radio = smart_crossfade(start_next=3.,fade_out=2.,fade_in=2.,width=2.,conservative=false,radio)

url = "http://localhost:8000/live"
input = mksafe(input.http(url))

out = fallback(track_sensitive=false, transitions=[ crossfade_live, transition(jingle) ],[input, radio])

out = fallback(track_sensitive=false,[strip_blank(length=10.,threshold=-50.,radio) , out ]) # На случай тишины в эфире

output.icecast(%mp3(bitrate=256, samplerate = 44100, stereo = true),
host = "localhost",
port = 8000,
name="EDM Radio 256 Kbit/s",
genre="Elecrtonic",
url="http://edmradio.ru/",
description="Electronic Dance Music Radio",
password = "hackme",
mount = "/autodj",
out)

78
djmarkus @djmarkus
Друзья и коллеги!
Прошу на мой взгляд простой помощи, возможно и не очень! Сам никак не могу разобраться!
Мне необходим скрипт *.liq
задача такая :
4 mount icecast
debian 8
музыка будет размещена на сервере допустим /home/music
для каждого mount в отдельной папке

music - dance
|
-rock

итп

будут заранее сделанные плейлисты сохраненные в m3u
в каждой строчке указан путь к трэку, там же будут джинглы и прочее!
-----

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

потоки хотелось бы в mp3 128

Плиз ХЭЛП!

89
Ok_go_love @Ok_go_love
djgelius пишет:

2015/06/28 01:14:57 >>> LOG START
2015/06/28 01:14:57 [protocols.external:3] Didn't find "ufetch".
2015/06/28 01:14:57 [protocols.external:3] Found "/usr/bin/wget".
2015/06/28 01:14:57 [main:3] Liquidsoap 1.0.1
2015/06/28 01:14:57 [main:3] Using: graphics=[distributed with Ocaml] pcre=6.2.5 dtools=0.3.0 duppy=0.4.2 duppy.syntax=0.4.2 cry=0.2.2 mm=0.2.0 xmlplaylist=0.1.3 lastfm=0.3.0 ogg=0.4.3 vorbis=0.6.1 speex=0.2.0 mad=0.4.4 flac=0.1.1 flac.ogg=0.1.1 dynlink=[distributed with Ocaml] lame=0.3.1 gstreamer=0.1.0 voaacenc=0.1.0 theora=0.3.0 schroedinger=0.1.0 gavl=0.1.4 bjack=0.1.3 alsa=0.2.1 ao=0.2.0 samplerate=0.1.1 taglib=0.2.0 magic=0.7.3 camomile=0.8.4 faad=0.3.0 soundtouch=0.1.7 portaudio=0.2.0 pulseaudio=0.1.2 ladspa=0.1.4 dssi=0.1.0 sdl=0.9.0 camlimages=4.0.0 lo=0.1.0 yojson=1.0.3 gd=1.0a5
2015/06/28 01:14:57 [dynamic.loader:3] Loaded dynamic aacplus encoder from /usr/lib/ocaml/aacplus
2015/06/28 01:14:57 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.0.1/plugins/flac.cmxs.
2015/06/28 01:14:57 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.0.1/plugins/cry.cmxs.
2015/06/28 01:14:57 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.0.1/plugins/voaacenc.cmxs.
2015/06/28 01:14:57 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.0.1/plugins/mad.cmxs.
2015/06/28 01:14:57 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.0.1/plugins/faad.cmxs.
2015/06/28 01:14:57 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.0.1/plugins/pulseaudio.cmxs.
2015/06/28 01:14:57 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.0.1/plugins/lame.cmxs.
2015/06/28 01:14:57 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.0.1/plugins/ogg.cmxs.
2015/06/28 01:14:57 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.0.1/plugins/taglib.cmxs.
2015/06/28 01:14:57 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.0.1/plugins/vorbis.cmxs.
2015/06/28 01:14:57 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.0.1/plugins/flac_ogg.cmxs.
2015/06/28 01:14:57 [frame:3] Using 44100Hz audio, 25Hz video, 44100Hz master.
2015/06/28 01:14:57 [frame:3] Frame size must be a multiple of 1764 ticks = 1764 audio samples = 1 video samples.
2015/06/28 01:14:57 [frame:3] Targetting 'frame.duration': 0.04s = 1764 audio samples = 1764 ticks.
2015/06/28 01:14:57 [frame:3] Frames last 0.04s = 1764 audio samples = 1 video samples = 1764 ticks.
2015/06/28 01:14:57 [decoder:3] Method "MAD" accepted "/home/radio/music/jingls/02.mp3".
2015/06/28 01:14:57 [single:3] "/home/radio/music/jingls/02.mp3" is static, resolving once for all...

Подскажите пожалуйста!
Что хочет от меня ошибок не выдает в конфиге!
#!/etc/liquidsoap -d
set("init.daemon",true)
set("init.daemon.pidfile",false)
set("log.file.path","/var/log/liquidsoap/basic.log")
set("log.stdout",true)
set("log.level",3)
pathToSocket="/etc/liquidsoap/liquidsoap.pid";
set("server.socket",true);
set("server.socket.path",pathToSocket);
set("server.socket.permissions",511)

def crossfade_live(a,b)
add(normalize=false,
[ sequence([ blank(duration=6.),
fade.initial(duration=10.,b) ]),
fade.final(duration=8.,a) ])
end
def transition(j,a,b)
add(normalize=false,
[ fade.initial(b),
sequence(merge=true,
[blank(duration=1.),j,fallback([])]),
fade.final(a) ])
end
def get_djsilere() =
uri = get_process_output("php /home/radio/scripts/request.php /home/radio/music/djsilere") # К запросу добавили имя папки с радиошоу
print("next track: #{uri}")
request.create(uri)
end
def get_alexnegniy() =
uri = get_process_output("php /home/radio/scripts/request.php /home/radio/music/alexnegniy") # К запросу добавили имя папки с радиошоу
print("next track: #{uri}")
request.create(uri)
end

myplaylist = mksafe(playlist(reload=360, '/home/radio/music/nonstop/'))
radio = myplaylist
radio = mksafe(radio)

djsilere = request.dynamic(id="djsilere",length=10.,get_djsilere)
alexnegniy = request.dynamic(id="alexnegniy",length=10.,get_alexnegniy)

jingle = single("/home/radio/music/jingls/02.mp3") # Джингл

radio = switch([ ({0h-20h and 22h-23h}, radio), ({3w1h25m-3w2h25m}, djsilere), ({4w21h-4w22h}, alexnegniy) ])

radio = smart_crossfade(start_next=3.,fade_out=2.,fade_in=2.,width=2.,conservative=false,radio)

url = "http://localhost:8000/live"
input = mksafe(input.http(url))

out = fallback(track_sensitive=false, transitions=[ crossfade_live, transition(jingle) ],[input, radio])

out = fallback(track_sensitive=false,[strip_blank(length=10.,threshold=-50.,radio) , out ]) # На случай тишины в эфире

output.icecast(%mp3(bitrate=256, samplerate = 44100, stereo = true),
host = "localhost",
port = 8000,
name="EDM Radio 256 Kbit/s",
genre="Elecrtonic",
url="http://edmradio.ru/",
description="Electronic Dance Music Radio",
password = "hackme",
mount = "/autodj",
out)

А в чем, собственно, дело? Я из неприятного вижу только это:
Didn't find "ufetch".
Вам бы log.level до 4 увеличить, например. Тогда будет понятнее, что там к чему.

Отредактировано Ok_go_love - 10.07.2015
382
Grigorij @gyurgin_1
Ну натурально ничего и не посоветуешь, лог давйате

382
Grigorij @gyurgin_1
И и в запросе не судьба была чтоли передать данные?

89
Ok_go_love @Ok_go_love
На Debian Jessie в Stable репозитории багованная либа libmp3lame0, посему не советую. :)

Отредактировано Ok_go_love - 12.07.2015
18
Максим @Maksim_CHaykin
Плейлист генерируется php скриптом, запрос происходит через request.dynamic. Проблема в том, что liquidsoap играет только первый трек в списке
Пример плейлиста
Artist - Title 1.mp3 Artist - Title 2.mp3 Artist - Title 3.mp3 и т. д.

6245
Тарас @tarasian666
request.dynamic запрашивает только 1 трек который должен играть следующим, а скрипт у вас генериреут статический плейлист

18
Максим @Maksim_CHaykin
есть варианты чтоб не по одному треку скармливать, а большим количеством с помощью скрипта?

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

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


помогите пожалуйста

на самом деле там нет ничего сложного, надо просто почитать инструкцию, сделать простой стрим и скопипастить его несколько раз переименовывая плейлист и маунт. Или сделать несколько конфигов по 1 стриму, так может даже лучше, в случае если упадет 1 стрим то не потянет все остальные за собой.