1,176

Re: liquidsoap

много это сколько?

1,177

Re: liquidsoap

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

1,178

Re: liquidsoap

незнаю, у меня на сервере гиг, хватает с запасом. Сейчас liquidsoap использует 46мб но без smooth_add.

1,179

Re: liquidsoap

пишет tarasian666:

использует 46мб.

Я уже все поотключал, жрет скотина

1,180

Re: liquidsoap

Только начал разбираться с liquidsoap, прочитал статью http://habrahabr.ru/post/156591/ и не совсем понял один момент.

Для того, чтобы закинуть файлы в стрим, нужно обязательно создать плэйлист/плэйлисты? нельзя просто указать папку с музыкой, из файлов которой ликвид сам создаст стрим и отправит на icecast?

1,181

Re: liquidsoap

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

1,182

Re: liquidsoap

пишет tarasian666:

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

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

1,183

Re: liquidsoap

Оттестив скрипт на девелоперской машине и обрадовавшись своему новому инструменту для стриминга, я решил испробовать его в продакшене вместо 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. Потратив много времени я так и не нашел решения.

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

На всякий случай мой вопрос на с.о. http://stackoverflow.com/questions/3097 … er-hyper-v

1,184

Re: liquidsoap

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

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

1,185

Re: liquidsoap

пишет 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.

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

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

1,186

Re: liquidsoap

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

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.

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

1,187

Re: liquidsoap

это еще что?
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,188

Re: liquidsoap

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 18:30:56)

1,189

Re: liquidsoap

Читать не умеете? Когда собираем - root только на последнем этапе.

1,190

Re: liquidsoap

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)

1,191

Re: liquidsoap

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

music - dance
           |
           -rock

итп

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

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

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

Плиз ХЭЛП!

Кодирую !

1,192

Re: liquidsoap

пишет 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 06:54:32)

1,193

Re: liquidsoap

Ну натурально ничего и не посоветуешь, лог давйате

1,194

Re: liquidsoap

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

1,195

Re: liquidsoap

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

Отредактировано Ok_go_love (12-07-2015 01:16:04)

1,196

Re: liquidsoap

Плейлист генерируется php скриптом, запрос происходит через request.dynamic. Проблема в том, что liquidsoap играет только первый трек в списке
Пример плейлиста

Artist - Title 1.mp3 Artist - Title 2.mp3 Artist - Title 3.mp3 и т. д.

1,197

Re: liquidsoap

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

1,198

Re: liquidsoap

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

1,199

Re: liquidsoap

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

1,200

Re: liquidsoap

пишет djmarkus:

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

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