801

Re: liquidsoap

shoutcast с плагином )
из простых есть еще
radioboss
djin (http://www.djinlite.ru/)

802

Re: liquidsoap

radioboss платный, забыл сказать, что нужны бесплатные решения. djinlite вроде подходит, но он какой-то очень уж сложный. Проигрывание своих песенок я осилил, но вот из микрофона в прямой эфир выдавать звук не получается никак. Видимо, это в принципе невозможно. Больше вариантов нет?

В итоге к Liquidsoap'у подключился с помощью AIMP3 + edcast. Довольно удобно сделано, как мне и надо было. Если бы ещё AIMP не запускался параллельно, но это мелочи.

Отредактировано nivs (04-04-2013 11:40:29)

803

Re: liquidsoap

подскажите как правильно его запустить на debian
из под root нельзя. создал нового пользователя, захожу через ssh, запускаю
$ liquidsoap /путь/к/конфигу/play.liq
всё работает, но как только выхожу из программы ssh, то сразу и liquidsoap выключается

Установка и настройка Icecast и Liquidsoap на Debian

804

Re: liquidsoap

set("init.daemon",true)
set("log.stdout",false)

805

Re: liquidsoap

Спасибо, помогло
только ещё попросил дописать строку
set("init.daemon.pidfile.path", "/var/run/liquidsoap/liquidsoap.pid")

Отредактировано Sasha.Yohan (24-04-2013 03:01:51)

Установка и настройка Icecast и Liquidsoap на Debian

806

Re: liquidsoap

нашел ещё вот это
http://radiotalk.ru/viewtopic.php?pid=23538#p23538
файл сделал, пути прописал
после перезагрузки ничего не произошло

какой командой потом делать stop и start?
и у liquidsoap есть коммандная строка reload config как у icecast?

Отредактировано Sasha.Yohan (24-04-2013 03:05:05)

Установка и настройка Icecast и Liquidsoap на Debian

807

Re: liquidsoap

на Хабре нашел ещё чтото похожее

Ну и для полноты статьи, мини-конфиг для upstart:

description     "air-st"
start on (
    net-device-up
    local-filesystems
    and runlevel [2345]
)
stop on runlevel [016]
respawn
exec su - liquidsoap -c "/usr/local/bin/liquidsoap /etc/liquidsoap/st.liq"

Стандартно service air-st start/stop/restart (st — краткое название одной из станций. Удобно перезапускать их независимо).

подскажите как это реализовать,
вся надежда только на вас)

Отредактировано Sasha.Yohan (24-04-2013 03:07:07)

Установка и настройка Icecast и Liquidsoap на Debian

808

Re: liquidsoap

set("init.daemon", true)
set("log.stdout", false)
set("init.daemon.pidfile.path", "/var/run/liquidsoap/liquidsoap.pid")
set("log.file.path", "/var/log/liquidsoap/liquidsoap.log")
set("harbor.bind_addr","0.0.0.0")

files = playlist(reload=360, "/home/sound")
files = mksafe(files)
 
live = input.harbor("live",port=8000,password="777")
radio = fallback(track_sensitive=false, [live,files])

output.icecast(%aacplus(bitrate=32),
    host = "0.0.0.0", port = 80, 
    mount="test.aac", password="777",
    radio)

добрые люди, гляньте плиз что не так?
не пойму почему не хочет запускаться harbor

может в PACKAGES.minimal нужно было ещё чтото раскомментировать перед тем как собирать?
или может ещё чтото отдельно запустить нужно?

вот кусок из логов

2013/04/23 23:48:54 [threads:3] Created thread "generic queue #1".
2013/04/23 23:48:54 [threads:3] Created thread "generic queue #2".
2013/04/23 23:48:54 [threads:3] Created thread "non-blocking queue #1".
2013/04/23 23:48:54 [clock.wallclock_main:2] Error when starting test(dot)aac: Failure("inet_addr_of_string")!
2013/04/23 23:48:54 [clock.wallclock_main:3] Raised by primitive operation at file "", line 0, characters 0-0
2013/04/23 23:48:54 [test(dot)aac:1] Got ill-balanced activations (from test(dot)aac)!
2013/04/23 23:48:54 [clock:2] Error when leaving output test(dot)aac: File "source.ml", line 403, characters 10-16: Assertion failed!
2013/04/23 23:48:54 [main:3] Shutdown started!
2013/04/23 23:48:54 [main:3] Waiting for threads to terminate...
2013/04/23 23:48:54 [main:3] Cleaning downloaded files...
2013/04/23 23:48:54 [main:3] Freeing memory...

Отредактировано Sasha.Yohan (24-04-2013 03:51:16)

Установка и настройка Icecast и Liquidsoap на Debian

Re: liquidsoap

как минимум не правильный ip сервера host = "0.0.0.0"

файл сделал, пути прописал
после перезагрузки ничего не произошло

прописать пути и создать файл недостаточно, надо сказать системе чтоб загружать этот скрипт (update-rc.d или chkconfig звависимости от системы)

Отредактировано Тарас Артюшенко (24-04-2013 22:09:54)

810

Re: liquidsoap

Подскажите как решить проблему с запуском Liquidsoap?

Установка производилась с нуля на debian 6
1) icecast 2.3.2
установки все по умолчанию.....дописал
<hostname>host.xx</hostname>
<port>8991</port>

<mount>
<mount-name>/live</mount-name>
<max-listeners>100</max-listeners>
<burst-size>65536</burst-size>
<hidden>0</hidden>
<no-yp>0</no-yp>
<genre>Various</genre>
</mount>

<security>
<chroot>0</chroot>
</security>

icecast сидит на нужном порту и слушает

netstat -apn | grep icecast
tcp        0      0 0.0.0.0:8991            0.0.0.0:*               LISTEN      4827/icecast2



2) lame-3.99.5
./configure
make
make install

3)liquidsoap взял
liquidsoap-1.0.1-full.tar.bz2 пишут что с поддержкой mp3

PACKAGES

ocaml-mad
ocaml-taglib
ocaml-lame
ocaml-samplerate
ocaml-soundtouch
ocaml-dtools
ocaml-duppy
ocaml-mm
liquidsoap

./configure --with-user=user --with-group=group --disable-graphics

make

root
#make install

создал файлик radio.liq
запуск liquidsoap -c radio.liq (user)

содержимое файла взял с первой страницы данной ветки но суть не важна
как бы я не менял данные вещания output.icecast(%mp3,(%vorbis,)  ошибка одна и та же и именно в этой строке

the variable output.icecast used here has not been previously defined.

гугление результатов не дало поэтому обращаюсь к сообществу

Отредактировано pincher (04-06-2013 11:40:39)

811

Re: liquidsoap

что пишет после configure ?

812

Re: liquidsoap

Не понял вопроса?
если после ./configure
то много чего пишет но ошибок нет!

813

Re: liquidsoap

в самом конце, должно написать что установлено а что нет

814

Re: liquidsoap

* Supported input formats
   - Vorbis            : no (requires vorbis)
   - Theora            : no (requires theora)
   - Speex             : no (requires speex)
   - Dirac             : no (requires schroedinger)
   - Flac (native)     : no (requires flac)
   - Flac (ogg)        : no (requires flac.ogg)
   - MP3               : yes
   - AAC               : no (requires faad)
   - text-to-speech    : requires text2wave (festival) and sox at runtime
   - XML playlists     : no (requires xmlplaylist)
   - Lastfm            : no (requires lastfm)

* Supported output formats
   - Vorbis            : no (requires vorbis)
   - MP3               : yes
   - AAC               : no (requires voaacenc)
   - AAC+              : no (requires aacplus)
   - SPEEX             : no (requires speex)
   - Theora            : no (requires theora)
   - Dirac             : no (requires schroedinger)

* Tags
   - Taglib (ID3 tags) : yes
   - Vorbis            : no (requires vorbis)
   - charset detection : yes

* Input / output
   - Icecast/Shoutcast : no (requires cry)
   - AO                : no (requires ao)
   - OSS               : yes
   - ALSA              : no (requires alsa)
   - Portaudio         : no (requires portaudio)
   - Pulseaudio        : no (requires pulseaudio)
   - JACK              : no (requires bjack)
   - GStreamer         : no (requires gstreamer)

* Audio manipulation
   - Samplerate        : yes
   - SoundTouch        : yes
   - LADSPA            : no (requires ladspa)

* Video manipulation
   - Gavl              : no (requires gavl)
   - camlimages        : no (requires camlimages)

* MIDI manipulation
   - DSSI              : no (requires dssi)

* Visualization
   - Graphics          : yes
   - SDL               : no (requires sdl)
   - GD                : no (requires gd)

* Additional libraries
   - dynlink           : yes
   - magic             : no (requires magic)
   - lo                : no (requires lo)
   - yojson            : no (requires yojson)

* Graphical interfaces
   - Python GUI        : no

-----------------------------------------------------------------------------

You may now compile liquidsoap by running "make".
In case of significant library update, "make clean" is needed first.

If you want a local version of the documentation, run "make doc".

Then, perform installation by running "make install" as root.

And... have fun!


mp3 поддерживает

815

Re: liquidsoap

* Input / output
   - Icecast/Shoutcast : no (requires cry)

Вот это!

Отредактировано pincher (04-06-2013 12:16:02)

816

Re: liquidsoap

Большое спасибо! Конечно еще не все хорошо но я думаю как раз ошибка была в этом

PACKAGES
ocaml-mad
ocaml-taglib
ocaml-lame
ocaml-samplerate
ocaml-soundtouch
ocaml-dtools
ocaml-duppy
ocaml-mm
liquidsoap

взял файл PACKAGES.minimal и cp PACKAGES
после этого ошибка кроется в myplaylist но это я думаю побороть смогу!

817

Re: liquidsoap

Подскажите где посмотреть процесс liquidsoap?
запуск конфигурационных файлов проходит без ошибок но тем не менее в icecast mount не появляется.
САМ КОНФИГ
#!/usr/local/bin/liquidsoap
set("log.file.path","/home/pincher/logs/lqs.log")
(в логах пусто)
# Music
myplaylist = playlist("/mnt/music/alter/playlist.m3u")
# Some jingles
jingles = playlist("mnt/music/romantic/playlist.m3u")
# If something goes wrong, we'll play this
security = single("/mnt/music/alter/Bliss.mp3")

# Start building the feed with music
radio = myplaylist
# Now add some jingles
radio = random(weights = [1, 4],[jingles, radio])
# And finally the security
radio = fallback(track_sensitive = false, [radio, security])

output.icecast(%mp3,
  host = "localhost", port = 8991,
    password = "hackme", mount = "live.m3u",
      radio)
ICECAST
<authentication>
        <!-- Sources log in with username 'source' -->
        <source-password>hackme</source-password>
        <relay-password>hackme</relay-password>
        <!-- Admin logs in with the username given below -->
        <admin-user>admin</admin-user>
        <admin-password>hackme</admin-password>
    </authentication>

  <listen-socket>
        <port>8991</port>
    </listen-socket>

        <mount>
                <mount-name>/live</mount-name>
                <max-listeners>100</max-listeners>
                <burst-size>65536</burst-size>
                <hidden>0</hidden>
                <no-yp>0</no-yp>
                <genre>Various</genre>
        </mount>
<fileserve>1</fileserve>

top
ps aux
безрезультатно
и логи пустые хотя все файлы созданы.......так бы хоть в них посмотрел погуглил
Он вообще в процессах должен быть?

Отредактировано pincher (05-06-2013 06:54:46)

818

Re: liquidsoap

Если в логе пусто он не запустился, в процессах естественно тоже должен быть.
Проверьте права доступа

819

Re: liquidsoap

Еще раз спасибо! Вина моя я по незнанию запускал liquidsoap с ключом -с и по моему был прав.....все запустилось без этого ключа
просто из под user liquidsoap (конфигурационный файл) .liq
Судя по потоку плэйлисты он не подхватил.......но теперь уже проще разбираться! Спасибо еще раз!

Отредактировано pincher (05-06-2013 09:31:03)

820

Re: liquidsoap

Прошу  разъяснения настройка liquidsoap еще в процессе но сегодня попробовал подключиться микрофоном через fallback-mount используя RadioBOSS услышал свой голос все хорошо,но вот вопрос......почему-то я его услышал с многократным эхом.....в какую сторону смотреть? Это ширина канала? Это RadioBOSS? В каком месте можно искать решение
Вообще связка icecast+liquidsoap запущена на облачном сервере от Amazon ширина канала по данным tcpdump 10Mbit
На своей стороне имею всего 2Mbit
Извиняюсь если вопрос не в ту ветку!

Отредактировано pincher (06-06-2013 17:24:37)

821

Re: liquidsoap

это настройка микшера неправильная

822

Re: liquidsoap

В том то и дело что никакого микшера и в помине нет!

823

Re: liquidsoap

я о програмном

824

Re: liquidsoap

Понял. Буду пробовать. Спасибо!

825

Re: liquidsoap

Мой конфиг (большей частью конечно скомунизженный здесь) Спасибо что делились информацией

#!/usr/local/bin/liquidsoap

# функция наложения
def crossfade(~start_next,~fade_in,~fade_out,s)
s = fade.in(duration=fade_in,s)
s = fade.out(duration=fade_out,s)
fader = fun (a,b) -> add(normalize=false,[b,a])
cross(fader,s)
end

#функция для воспроизведения джинглов во время проигрывания музыки
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

# где будут логи
set("log.file.path","/home/pincher/logs/lqs.log")
set("log.stdout", true)
set("server.telnet", true)

# загружаем плейлист
morning = playlist(reload=600,"/mnt/music/morning")
novosti = playlist(reload=600,"/mnt/music/novosti")
doobeda = playlist(reload=600,"/mnt/music/doobeda")
posleobeda = playlist(reload=600,"/mnt/music/posleobeda")
vecher = playlist(reload=600,"/mnt/music/vecher")
night = playlist(reload=600,"/mnt/music/night")
morning = mksafe(morning)
novosti = mksafe(novosti)
doobeda = mksafe(doobeda)
posleobeda = mksafe(posleobeda)
vecher = mksafe(vecher)
night = mksafe(night)
morning = crossfade( fade_out = 12.0, fade_in = 12.0, start_next = 12.0, morning)
novosti = crossfade( fade_out = 12.0, fade_in = 12.0, start_next = 12.0, novosti)
doobeda = crossfade( fade_out = 12.0, fade_in = 12.0, start_next = 12.0, doobeda)
posleobeda = crossfade( fade_out = 12.0, fade_in = 12.0, start_next = 12.0, posleobeda)
vecher = crossfade( fade_out = 12.0, fade_in = 12.0, start_next = 12.0, vecher)
night = crossfade( fade_out = 12.0, fade_in = 12.0, start_next = 12.0, night)

#  Джинглы
jingles = playlist("/mnt/music/jingles/")

# Временные рамки и джинглы поверх музыки
radio = switch(track_sensitive = true,[({7h-9h}, morning),
({9h-9h10}, novosti), ({9h10-13h}, doobeda), ({13h-13h10}, novosti),
({13h10-19h}, posleobeda), ({19h-22h}, vecher), ({ 22h-7h }, night)])
radio = mksafe(radio)
radio = smooth_add(normal=radio,special=switch([({ 5m0s or 15m0s or 30m0s or 45m0s }, jingles)]))

#вещание
output.icecast(%mp3,
  host = "localhost", port = 8991,
    password = "парол", mount = "radio", radio)

есть fallback mount в icecast настраивал так
(для того чтобы не потеряться в конфиге......начинать отсюда.......
  <listen-socket>
        <port>8991</port>
    </listen-socket>

        <mount>
                <mount-name>/radio</mount-name>
                <hidden>0</hidden>
                <charset>utf8</charset>
        </mount>
<fileserve>1</fileserve>
)
Сам маунт fallback
        <mount>
                <fallback-mount>/radio</fallback-mount>
                <fallback-override>1</fallback-override>
                <fallback-when-full>1</fallback-when-full>
                <mount-name>/air</mount-name>
                <charset>utf8</charset>
        </mount>

к нему цепляюсь RadioBoss и получается эфир но пока до ума не довел эту часть
На звание гуру не претендую так как сам только неделю знакомлюсь со связкой icecast+liquidsoap
ранее была icecast+ices  пока переход не разочаровал.
Надеюсь пригодиться таким же как я новичкам!

Отредактировано pincher (06-06-2013 21:30:48)