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

liquidsoap

 

68
Алексей @features
Ok_go_love пишет:



Самый тупой вариант это сделать ps -A | grep liquidsoap, найти номер процесса, а потом отправить процессу kill
То же самое можно написать на bash.


Все порядочные процессы пишут pid файлы в /var/run.

89
Ok_go_love @Ok_go_love
features пишет:

Ok_go_love пишет:



Самый тупой вариант это сделать ps -A | grep liquidsoap, найти номер процесса, а потом отправить процессу kill
То же самое можно написать на bash.


Все порядочные процессы пишут pid файлы в /var/run.

Окей, озалупили.

Что-то типа того наверное. Можно в принципе использовать cat *, если pid-файл один.


#!/bin/bash
config=имя файла конфига, с которым запущено мыльце
pid=$(cat /var/run/liquidsoap/$config.pid)
kill $pid
echo 'Liquidsoap has been stopped'


А вообще говоря service liquidsoap start|stop|restart . Только конфиг с расширением *.liq положите в /etc/liquidsoap

Отредактировано Ok_go_love - 02.07.2014
1
satslb @satslb
Всем доброго времени суток , пытаюсь пустить стрим на айскаст сервер, звук беру с микрофона звуковой карточки. в мануалах нашел вот такое: liquidsoap 'output.icecast(%vorbis,mount="live.ogg",host="...",password="...",input.alsa())' . всё бы отлично , но выдаёт ошибку the variable input.alsa used here has not been previously defined. почему функцию input.alsa видит как переменную ? саму alsa настроил и проверял VLC'шкой. Заранее спасибо за помощь.

6245
Тарас @tarasian666
возможно собран без поддержки alsa (или не установлен пакет если установлено из репозиториев)

25
djgelius @djgelius
Здравствуйте!

Сделал я себе конфиг для нонстопа а слышу одну тишину почему?

set("log.file",false)
set("log.stdout",true)
set("log.level",4)

song = mksafe(playlist(reload = 30, "/var/www/music/nonstop/2014/")) #папка где лежат основные треки
jingle = mksafe(playlist(reload = 6000, "/war/www/music/jingls/")) #папка с джинглами

radio = rotate(weights = [1, 12],[jingle, song])#определяет ротацию, 1 джингл после 12-и треков
radio = mksafe(radio)
radio = crossfade( fade_out = 4.0, fade_in = 3.0, start_next = 3.0, radio ) #плавный переход между треками
#выход потока на айскаст
output.icecast(%mp3,
mount="/listen",
host="localhost", port=8000,
password="hackme",
genre="Electronic",
url="http://site.ru/",
description="XXX",
name="Radio",
radio
)


можно ли указать на папки на сервере? например у меня папке nonstop еще есть папки 2012, 2013, 2014 если указать на nonstop будет ли считывать все?

6245
Тарас @tarasian666
Проверьте права доступа на файлы и mksafe делайте в самом конце.
Если не ошибаюсь то он читает папки рекурсивно.

25
djgelius @djgelius
tarasian666 пишет:

Проверьте права доступа на файлы и mksafe делайте в самом конце.
Если не ошибаюсь то он читает папки рекурсивно.

Что означает "читает папки рекурсивно"?
У меня на папки выставлено права 777 а на файлы 755

или нужно так:

Для папок:
find . -type d -exec chmod 755 {} \;
Для файлов:
find . -type f -exec chmod 644 {} \;

6245
Тарас @tarasian666
изменение прав делается намного проще в таких случаях, просто добавить -R (рекурсивно, слово найдете в словаре)

25
djgelius @djgelius
tarasian666 пишет:

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

У меня стоит icecast 2.3.2 и сейчас работает панель radiocms она не мешает моему конфигу запуститься?
маунт указан запуска другой но все также тишина и путь уже копировал до папки с треками через WinSCP чтобы в символах не ошибиться (там есть скопировать путь) все равно!!!

Отредактировано djgelius - 09.07.2014
20
Вадим @Vadim_CHichkan
Как убрать, чтобы названия песни и исполнителя не отображались, а только отображалось название радиостанции и допустим название программы. Пример Radio bla bla - nonstop hits, а потом в определенное время меняется Radio bla bla - dance hits

Отредактировано Vadim_CHichkan - 09.07.2014
6245
Тарас @tarasian666
Vadim.CHichkan пару страниц назад обсуждалось похожее

89
Ok_go_love @Ok_go_love
djgelius, вы вот это set("log.file",false) зря сделали - лог бы Вам показал в чем проблема.
Не надо стесняться.
Замените на set("log.file.path","/var/log/liquidsoap.log") да и читайте себе на здоровье, что там с ним происходит.
ps. А может я и ошибаюсь, т.к. не помню, ведет ли мыльце лог из коробки, посему возможно достаточно убрать строку set("log.file",false)

Отредактировано Ok_go_love - 16.07.2014
25
djgelius @djgelius
Ok_go_love пишет:

djgelius, вы вот это set("log.file",false) зря сделали - лог бы Вам показал в чем проблема.
Не надо стесняться.
Замените на set("log.file.path","/var/log/liquidsoap.log") да и читайте себе на здоровье, что там с ним происходит.
ps. А может я и ошибаюсь, т.к. не помню, ведет ли мыльце лог из коробки, посему возможно достаточно убрать строку set("log.file",false)

тогда вообще не запускается конфиг!

25
djgelius @djgelius
2014/07/19 03:42:48 >>> LOG START
2014/07/19 03:42:48 [protocols.external:3] Found "/usr/bin/wget".
2014/07/19 03:42:48 [main:3] Liquidsoap 1.1.1
2014/07/19 03:42:48 [main:3] Using: graphics=[distributed with Ocaml] pcre=7.0.2 dtools=0.3.1 duppy=0.5.1 duppy.syntax=0.5.1 cry=0.2.2 mm=0.2.1 xmlplaylist=0.1.3 lastfm=0.3.0 ogg=0.4.5 vorbis=0.6.1 opus=0.1.0 speex=0.2.0 mad=0.4.4 flac=0.1.1 flac.ogg=0.1.1 dynlink=[distributed with Ocaml] lame=0.3.2 shine=0.1.1 gstreamer=0.2.0 frei0r=0.1.0 voaacenc=0.1.0 theora=0.3.0 schroedinger=0.1.0 gavl=0.1.5 bjack=0.1.4 alsa=0.2.1 ao=0.2.0 samplerate=0.1.2 taglib=0.3.1 magic=0.7.3 camomile=0.8.4 inotify=1.0 faad=0.3.2 soundtouch=0.1.7 portaudio=0.2.0 pulseaudio=0.1.2 ladspa=0.1.4 dssi=0.1.1 sdl=0.9.1 camlimages=4.0.0 lo=0.1.0 yojson=1.1.7 gd=1.0a5
2014/07/19 03:42:48 [dynamic.loader:3] Could not find dynamic module for fdkaac encoder.
2014/07/19 03:42:48 [dynamic.loader:3] Error while loading dynamic aacplus encoder at /usr/lib/ocaml/aacplus
2014/07/19 03:42:48 [dynamic.loader:3] Could not find dynamic module for aacplus encoder.
2014/07/19 03:42:48 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/flac.cmxs.
2014/07/19 03:42:48 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/ogg.cmxs.
2014/07/19 03:42:48 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/lame.cmxs.
2014/07/19 03:42:48 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/voaacenc.cmxs.
2014/07/19 03:42:48 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/mad.cmxs.
2014/07/19 03:42:48 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/pulseaudio.cmxs.
2014/07/19 03:42:48 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/faad.cmxs.
2014/07/19 03:42:48 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/cry.cmxs.
2014/07/19 03:42:48 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/vorbis.cmxs.
2014/07/19 03:42:48 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/taglib.cmxs.
2014/07/19 03:42:48 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/flac_ogg.cmxs.
2014/07/19 03:42:48 [frame:3] Using 44100Hz audio, 25Hz video, 44100Hz master.
2014/07/19 03:42:48 [frame:3] Frame size must be a multiple of 1764 ticks = 1764 audio samples = 1 video samples.
2014/07/19 03:42:48 [frame:3] Targetting 'frame.duration': 0.04s = 1764 audio samples = 1764 ticks.
2014/07/19 03:42:48 [frame:3] Frames last 0.04s = 1764 audio samples = 1 video samples = 1764 ticks.
2014/07/19 03:42:48 [video.converter:4] Couldn't find preferred video converter: gavl.
2014/07/19 03:42:48 [audio.converter:4] Couldn't find preferred samplerate converter: libsamplerate.
2014/07/19 03:42:48 [audio.converter:4] Using native samplerate converter
2014/07/19 03:42:48 [threads:3] Created thread "generic queue #1".
2014/07/19 03:42:48 [threads:3] Created thread "generic queue #2".
2014/07/19 03:42:48 [threads:3] Created thread "non-blocking queue #1".
2014/07/19 03:42:48 [threads:3] Created thread "non-blocking queue #2".
2014/07/19 03:42:48 [clock:4] Currently 1 clocks allocated.
2014/07/19 03:42:48 [clock.wallclock_main:4] Starting 1 sources...
2014/07/19 03:42:48 [source:4] Source output.icecast_4766 gets up.
2014/07/19 03:42:48 [source:4] Source quota_4764 gets up.
2014/07/19 03:42:48 [source:4] Source mksafe gets up.
2014/07/19 03:42:48 [source:4] Source playlist_4760 gets up.
2014/07/19 03:42:48 [jingls:3] Loading playlist...
2014/07/19 03:42:48 [request:3] Nonexistent file or ill-formed URI "/war/www/music/jingls/"!
2014/07/19 03:42:48 [jingls:2] Failed when resolving playlist URI "/war/www/music/jingls/"!
2014/07/19 03:42:48 [jingls:3] Got an empty list: keeping the old one.
2014/07/19 03:42:48 [jingls:4] Content kind is {audio=2;video=0;midi=0}.
2014/07/19 03:42:48 [jingls:4] Activations changed: static=[], dynamic=[mksafe:quota_4764:/live:/live].
2014/07/19 03:42:48 [source:4] Source safe_blank gets up.
2014/07/19 03:42:48 [safe_blank:4] Content kind is {audio=2;video=0;midi=0}.
2014/07/19 03:42:48 [safe_blank:4] Activations changed: static=[], dynamic=[mksafe:quota_4764:/live:/live].
2014/07/19 03:42:48 [mksafe:4] Activations changed: static=[], dynamic=[quota_4764:/live:/live].
2014/07/19 03:42:48 [source:4] Source mksafe gets up.
2014/07/19 03:42:48 [source:4] Source playlist_4756 gets up.
2014/07/19 03:42:48 [2013:3] Loading playlist...
2014/07/19 03:42:48 [2013:3] Playlist is a directory.
2014/07/19 03:42:48 [2013:3] Successfully loaded a playlist of 298 tracks.
2014/07/19 03:42:48 [2013:4] Content kind is {audio=2;video=0;midi=0}.
2014/07/19 03:42:48 [2013:4] Activations changed: static=[], dynamic=[mksafe:quota_4764:/live:/live].
2014/07/19 03:42:48 [source:4] Source safe_blank gets up.
2014/07/19 03:42:48 [safe_blank:4] Content kind is {audio=2;video=0;midi=0}.
2014/07/19 03:42:48 [safe_blank:4] Activations changed: static=[], dynamic=[mksafe:quota_4764:/live:/live].
2014/07/19 03:42:48 [mksafe:4] Activations changed: static=[], dynamic=[quota_4764:/live:/live].
2014/07/19 03:42:48 [quota_4764:4] Activations changed: static=[/live:/live], dynamic=[].
2014/07/19 03:42:48 [/live:4] Activations changed: static=[/live], dynamic=[].
2014/07/19 03:42:48 [/live:4] Enabling caching mode: active source.
2014/07/19 03:42:48 [/live:3] Connecting mount /live for source@localhost...
2014/07/19 03:42:48 [decoder:4] Trying method "META" for "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3"...
2014/07/19 03:42:48 [decoder:4] Trying method "WAV" for "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3"...
2014/07/19 03:42:48 [decoder.wav:4] Invalid MIME type for "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3": application/octet-stream!
2014/07/19 03:42:48 [decoder.wav:4] Invalid file extension for "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3"!
2014/07/19 03:42:48 [decoder:4] Trying method "MIDI" for "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3"...
2014/07/19 03:42:48 [decoder:4] Trying method "IMAGE" for "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3"...
2014/07/19 03:42:48 [decoder:4] Trying method "FLAC" for "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3"...
2014/07/19 03:42:48 [decoder.flac:4] Invalid MIME type for "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3": application/octet-stream!
2014/07/19 03:42:48 [decoder.flac:4] Invalid file extension for "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3"!
2014/07/19 03:42:48 [decoder:4] Trying method "OGG" for "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3"...
2014/07/19 03:42:48 [decoder.ogg:4] Invalid MIME type for "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3": application/octet-stream!
2014/07/19 03:42:48 [decoder.ogg:4] Invalid file extension for "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3"!
2014/07/19 03:42:48 [decoder:4] Trying method "MAD" for "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3"...
2014/07/19 03:42:48 [decoder.mad:4] Libmad recognizes "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3" as mpeg audio (layer III, 128kbps, 44100Hz, 2 channels).
2014/07/19 03:42:48 [decoder:3] Method "MAD" accepted "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3".
2014/07/19 03:42:48 [metadata.flac:4] Invalid MIME type for "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3": application/octet-stream!
2014/07/19 03:42:48 [metadata.flac:4] Invalid file extension for "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3"!
2014/07/19 03:42:48 [decoder.ogg:4] Invalid MIME type for "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3": application/octet-stream!
2014/07/19 03:42:48 [decoder.ogg:4] Invalid file extension for "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3"!
2014/07/19 03:42:48 [metadata.mp4:4] Invalid MIME type for "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3": application/octet-stream!
2014/07/19 03:42:48 [metadata.mp4:4] Invalid file extension for "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3"!
2014/07/19 03:42:48 [/live:3] Connection setup was successful.
2014/07/19 03:42:48 [threads:3] Created thread "wallclock_main" (1 total).
2014/07/19 03:42:48 [clock:4] Main phase starts.
2014/07/19 03:42:48 [clock.wallclock_main:3] Streaming loop starts, synchronized with wallclock.
2014/07/19 03:42:48 [2013:4] Remaining: 0.0s, queued: 0.0s, adding: 30.0s (RID 2)
2014/07/19 03:42:49 [quota_4764:3] Switch to mksafe.
2014/07/19 03:42:49 [mksafe:4] Activations changed: static=[quota_4764:/live:/live], dynamic=[quota_4764:/live:/live].
2014/07/19 03:42:49 [mksafe:3] Switch to safe_blank.
2014/07/19 03:42:49 [safe_blank:4] Activations changed: static=[mksafe:quota_4764:/live:/live], dynamic=[mksafe:quota_4764:/live:/live].

Помогите что здесь не так? маунт /live у меня? тишина у меня на радио

Отредактировано djgelius - 19.07.2014
20
Вадим @Vadim_CHichkan
Как сделать чтобы расписание например в будние дни было одно, а в выходные дни было другое.

6245
Тарас @tarasian666
djgelius, лог как бы говорит сам за себя
Vadim.CHichkan, хоть на каждый день отдельно

playlist = switch([({1w}, playlist_monday),
({2w}, playlist_tuesday),
({3w}, playlist_wednesday),
({4w}, playlist_thursday),
({5w}, playlist_friday),
({6w or 7w}, playlist_weekend)])

25
djgelius @djgelius
tarasian666 пишет:

djgelius, лог как бы говорит сам за себя

Если бы я еще понимал что он хочет от меня!
Помогите разобрать!

20
Вадим @Vadim_CHichkan
Как поставить ограничение на повторение песни, допустим чтобы играла раз в сутки, а то уже за пол часа 2 раза играла одна песня

6245
Тарас @tarasian666
средствами liquidsoap - никак

89
Ok_go_love @Ok_go_love
Vadim.CHichkan пишет:

Как поставить ограничение на повторение песни, допустим чтобы играла раз в сутки, а то уже за пол часа 2 раза играла одна песня

Пилите скрипты (на perl например или на PHP). В Sam Broadcaster, например, ротация сделана занесением в БД игравших песен и уже оттуда (учитывая настройки SB) подкладываются треки в queue.
Попробуйте написать то же самое для liquidsoap.
В целом смысл состоит в том, чтобы скрипт подпихивал треки liquidsoap'у. А уж как скрипт будет реализован - Ваше исполнение.

djgelius, обратите внимание на следующие строки.
2014/07/19 03:42:48 [request:3] Nonexistent file or ill-formed URI "/war/www/music/jingls/"!
2014/07/19 03:42:48 [jingls:2] Failed when resolving playlist URI "/war/www/music/jingls/"!
2014/07/19 03:42:48 [decoder:4] Trying method "META" for "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3"...
2014/07/19 03:42:48 [decoder:4] Trying method "WAV" for "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3"...
2014/07/19 03:42:48 [decoder.wav:4] Invalid MIME type for "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3": application/octet-stream!
2014/07/19 03:42:48 [decoder.wav:4] Invalid file extension for "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3"!
2014/07/19 03:42:48 [decoder:4] Trying method "MIDI" for "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3"...
2014/07/19 03:42:48 [decoder:4] Trying method "IMAGE" for "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3"...
2014/07/19 03:42:48 [decoder:4] Trying method "FLAC" for "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3"...
2014/07/19 03:42:48 [decoder.flac:4] Invalid MIME type for "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3": application/octet-stream!
2014/07/19 03:42:48 [decoder.flac:4] Invalid file extension for "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3"!
2014/07/19 03:42:48 [decoder:4] Trying method "OGG" for "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3"...
2014/07/19 03:42:48 [decoder.ogg:4] Invalid MIME type for "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3": application/octet-stream!
2014/07/19 03:42:48 [decoder.ogg:4] Invalid file extension for "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3"!
2014/07/19 03:42:48 [decoder:4] Trying method "MAD" for "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3"...
2014/07/19 03:42:48 [decoder.mad:4] Libmad recognizes "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3" as mpeg audio (layer III, 128kbps, 44100Hz, 2 channels).
2014/07/19 03:42:48 [decoder:3] Method "MAD" accepted "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3".
2014/07/19 03:42:48 [metadata.flac:4] Invalid MIME type for "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3": application/octet-stream!
2014/07/19 03:42:48 [metadata.flac:4] Invalid file extension for "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3"!
2014/07/19 03:42:48 [decoder.ogg:4] Invalid MIME type for "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3": application/octet-stream!
2014/07/19 03:42:48 [decoder.ogg:4] Invalid file extension for "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3"!
2014/07/19 03:42:48 [metadata.mp4:4] Invalid MIME type for "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3": application/octet-stream!
2014/07/19 03:42:48 [metadata.mp4:4] Invalid file extension for "/var/www/music/nonstop/2013//Marco V And Doctors In Florence - Lotus (Limitless) (Single Mix).mp3"!

Отредактировано Ok_go_love - 23.07.2014