Icecast с Liquidsoap не работает
Все;
Ubuntu 18.04 - Icecast / LiquidSoap / opam / (liquidsoap-демон)
Установлено: taglib безумный хромой Vorbis cry ssl samplerate магический опус
Плагины: liquidsoap-plugin-all
Системные характеристики:
-System - VirtualBox
-CPU = Intel(R) Core(TM) i7-2720QM CPU @ 2.20GHz
-Memory = 1969MiB (2GB assigned to VM Client)
Я возился с этим некоторое время и безрезультатно.
У меня есть эта тема, которая сейчас закрыта, в которой есть почти все, что вам нужно посмотреть о моей настройке. Сбой при разборе запроса Icecast
Плейлист, который я тестирую:
#!/usr/bin/liquidsoap
# Log dir
set("log.file.path","/var/log/liquidsoap/radioliq.log")
# Music
myplaylist = playlist("/home/UserName/music-store/")
# Some jingles
jingles = playlist("/home/UserName/music-store/jingles/jingles.m3u")
# If something goes wrong, we'll play this
security = single("/home/UserName/music-store/Sec.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])
# Stream it out
output.icecast(%vorbis,
radio, host = "192.168.2.20", port = 8000,
password = "********", mount = "test.ogg")
Когда я запускаю это
sudo /etc/init.d/liquidsoap restart
Я понял
Stopping liquidsoap channels: no script found in /etc/liquidsoap
Starting liquidsoap channels: radio1.liq OK
Он показывает запуск radio1.liq, однако, он ОСТАНОВЛЕН, потому что он не может найти что-либо в этом каталоге. Вот где он обнаруживает файл radio1.liq.
Когда я бегу
sudo systemctl status liquidsoap
Мой вывод такой:
● liquidsoap.service - LSB: Starts the liquidsoap daemon
Loaded: loaded (/etc/init.d/liquidsoap; generated)
Active: active (exited) since Tue 2018-06-12 17:47:52 EDT; 3h 0min ago
Docs: man:systemd-sysv-generator(8)
Process: 1312 ExecStart=/etc/init.d/liquidsoap start (code=exited, status=0/SUCCESS)
Jun 12 17:47:47 liquid-ice systemd[1]: Starting LSB: Starts the liquidsoap daemon...
Jun 12 17:47:52 liquid-ice liquidsoap[1312]: Starting liquidsoap channels: radio1.liq OK
Jun 12 17:47:52 liquid-ice systemd[1]: Started LSB: Starts the liquidsoap daemon.
Как вы можете сказать, Active активируется(выходит), когда в другое время он (работает), как Icecast. Тем не менее, я обычно должен сделать перезагрузку в системе, чтобы заставить его показать (работает)
Я только что сделал перезагрузку, и он все еще показывает (выход), это первый раз, когда он не изменился на (работает). И обычно это дает мне ошибку, что я должен что-то исправить, но сейчас это не происходит.
● icecast2.service - LSB: Icecast2 streaming media server
Loaded: loaded (/etc/init.d/icecast2; generated)
Active: active (running) since Tue 2018-06-12 17:47:50 EDT; 3h 1min ago
Docs: man:systemd-sysv-generator(8)
Process: 1338 ExecStart=/etc/init.d/icecast2 start (code=exited, status=0/SUCCESS)
Tasks: 4 (limit: 2289)
CGroup: /system.slice/icecast2.service
└─1403 /usr/bin/icecast2 -b -c /etc/icecast2/icecast.xml
Jun 12 17:47:48 liquid-ice systemd[1]: Starting LSB: Icecast2 streaming media server...
Jun 12 17:47:48 liquid-ice icecast2[1338]: * Starting streaming media server icecast2
Jun 12 17:47:50 liquid-ice icecast2[1338]: ...done.
Jun 12 17:47:50 liquid-ice systemd[1]: Started LSB: Icecast2 streaming media server.
при открытии веб-интерфейса отображаются только следующие вкладки (страницы)
[Admin] | [Version]
Все остальные страницы пустые:
[Server Status] => Nothing, completely blank.
[Mountpoint List] => Active Mountpoints (This is all it shows on the page)
Я также изменил имя пользователя в /etc/init.d/liquidsoap
user=username
group=username
Имя пользователя Это то, что я вошел как. А потом дал разрешение моему пользователю на локации.
/etc/liquidsoap/radio1.liq
/run/liquidsoap/
используя следующие скрипты:
sudo chmod o+w /run/liquidsoap/
sudo chmod o+w /etc/liquidsoap/radio1.liq
Вот последний журнал ошибок из icecast error.log
[2018-08-08 02:22:18] INFO sighandler/_sig_die Caught signal 15, shutting down...
[2018-08-08 02:22:18] INFO main/main Shutting down
[2018-08-08 02:22:18] INFO fserve/fserve_shutdown file serving stopped
[2018-08-08 02:22:18] INFO slave/_slave_thread shutting down current relays
[2018-08-08 02:22:18] INFO slave/_slave_thread Slave thread shutdown complete
[2018-08-08 02:22:18] INFO auth/auth_shutdown Auth shutdown
[2018-08-08 02:22:18] INFO yp/yp_shutdown YP thread down
[2018-08-08 02:22:19] INFO stats/stats_shutdown stats thread finished
[2018-08-08 02:22:19] INFO main/main Icecast 2.4.3 server started
[2018-08-08 02:22:19] INFO connection/get_ssl_certificate No SSL capability
[2018-08-08 02:22:19] INFO stats/_stats_thread stats thread started
[2018-08-08 02:22:19] INFO yp/yp_update_thread YP update thread started
Выдержки из файла radio.log
2018/08/09 04:35:03 [dynamic.loader:3] Could not find dynamic module for fdkaac encoder.
2018/08/09 04:35:03 [dynamic.loader:3] Could not find dynamic module for aacplus encoder.
..........
2018/08/09 04:35:03 [frame:3] Using 44100Hz audio, 25Hz video, 44100Hz master.
2018/08/09 04:35:03 [frame:3] Frame size must be a multiple of 1764 ticks = 1764 audio samples = 1 video samples.
2018/08/09 04:35:03 [frame:3] Targetting 'frame.duration': 0.04s = 1764 audio samples = 1764 ticks.
2018/08/09 04:35:03 [frame:3] Frames last 0.04s = 1764 audio samples = 1 video samples = 1764 ticks.
2018/08/09 04:35:03 [decoder:3] Method "MAD" accepted "/home/darkice/music/Security/sec.mp3".
2018/08/09 04:35:03 [single:3] "~/music/Security/sec.mp3" is static, resolving once for all...
2018/08/09 04:35:03 [threads:3] Created thread "generic queue #1".
2018/08/09 04:35:03 [threads:3] Created thread "non-blocking queue #1".
2018/08/09 04:35:03 [Jingle(dot)mp3:3] Loading playlist...
2018/08/09 04:35:05 [Jingle(dot)mp3:3] No mime type specified, trying autodetection.
2018/08/09 04:35:05 [playlist.basic:3] Wrong mime type audio/mpeg for playlist!
2018/08/09 04:35:05 [playlist parser:3] No format found
2018/08/09 04:35:05 [Jingle(dot)mp3:3] Could not parse playlist: Not_found
2018/08/09 04:35:05 [Jingle(dot)mp3:3] Got an empty list: keeping the old one.
2018/08/09 04:35:05 [musicList:3] Loading playlist...
2018/08/09 04:35:05 [musicList:3] Playlist is a directory.
2018/08/09 04:35:05 [musicList:3] Successfully loaded a playlist of 1 tracks.
2018/08/09 04:35:05 [single_6363:3] Prepared "/home/darkice/music/Security/sec.mp3" (RID 0).
2018/08/09 04:35:05 [test(dot)ogg:3] Connecting mount test.ogg for source@192.168.2.4...
2018/08/09 04:35:05 [test(dot)ogg:2] Connection failed: 401, Authentication Required (HTTP/1.0)
2018/08/09 04:35:05 [test(dot)ogg:3] Will try again in 3.00 sec.
2018/08/09 04:35:05 [threads:3] Created thread "wallclock_main" (1 total).
2018/08/09 04:35:05 [clock.wallclock_main:3] Streaming loop starts, synchronized with wallclock.
2018/08/09 04:43:34 [decoder:3] Method "MAD" accepted "/home/darkice/music/List/01 Send Her To Me.mp3".
2018/08/09 04:43:34 [test(dot)ogg:2] Connection failed: 401, Authentication Required (HTTP/1.0)
2018/08/09 04:43:34 [test(dot)ogg:3] Will try again in 3.00 sec.
2018/08/09 04:43:34 [threads:3] Created thread "wallclock_main" (1 total).
2018/08/09 04:43:34 [clock.wallclock_main:3] Streaming loop starts, synchronized with wallclock.
2018/08/09 04:43:34 [fallback_6368:3] Switch to single_6363.
2018/08/09 04:43:34 [carrzkiss:3] Prepared "/home/darkice/music/List/01 Send Her To Me.mp3" (RID 3).
2018/08/09 04:43:34 [fallback_6368:3] Switch to random_6366 with transition.
2018/08/09 04:35:05 [random_6366:3] Switch to musicList.
2018/08/09 04:35:09 [test(dot)ogg:3] Connecting mount test.ogg for source@192.168.2.4...
2018/08/09 04:35:09 [test(dot)ogg:2] Connection failed: 401, Authentication Required (HTTP/1.0)
2018/08/09 04:35:09 [test(dot)ogg:3] Will try again in 3.00 sec.
Я следил за этой страницей здесь, чтобы начать регистрацию.
Есть что-то, чего я здесь не хватает? Есть ли что-то еще, что нужно установить, чтобы правильно функционировать жидкое мыло?
Я следовал этому руководству по установке. Создать интернет-радиостанцию с Icecast и liquidsoap
Я действительно не знаю, что еще добавить к этому. Я прошел через все и даже сделал некоторые дополнения, когда писал это. Пожалуйста, дайте мне знать, если есть что-то еще, что вам может понадобиться, чтобы я проверил. И, пожалуйста, взгляните на мою другую ветку, для получения дополнительной информации о том, что я настроил здесь. Сбой при разборе запроса Icecast
запустив следующий код.
curl -v 192.168.2.4:8000 >/dev/null
дает мне это.
* Rebuilt URL to: 192.168.2.4:8000/
* Trying 192.168.2.4...
* TCP_NODELAY set
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Connected to 192.168.2.4 (192.168.2.4) port 8000 (#0)
> GET / HTTP/1.1
> Host: 192.168.2.4:8000
> User-Agent: curl/7.58.0
> Accept: */*
>
* HTTP 1.0, assume close after body
< HTTP/1.0 200 OK
< Server: Icecast 2.4.3
< Date: Sun, 12 Aug 2018 18:28:52 GMT
< Content-Type: text/xml; charset=UTF-8
< Cache-Control: no-cache
< Expires: Mon, 26 Jul 1997 05:00:00 GMT
< Pragma: no-cache
< Access-Control-Allow-Origin: *
< Content-Length: 1144
<
{ [1144 bytes data]
100 1144 100 1144 0 0 95333 0 --:--:-- --:--:-- --:--:-- 101k
* Closing connection 0
Благодарю вас.
Wayne
2 ответа
Прошло много времени с тех пор, как я возился с Icecast2 и Liquidsoap.
Однако я сделал это несколько недель назад.
После некоторой борьбы я понял это после того, как получил помощь от другого человека и просмотрел видео.
Это все была проблема с разрешениями.
После того, как вы создадите своего пользователя «Icedemo.
(вошли как root)
adduser Icedemo
Предоставьте пользователю права SUDO.
usermod -aG sudo Icedemo
Теперь дайте Icedemo права доступа ко всем папкам.
/opt/liquidsoap/Playlists/
/var/log/liquidsoap/
/etc/icecast2/web/
/etc/icecast2/admin/
Используйте следующий сценарий для предоставления разрешений.
cd /opt
sudo chown -Rv icedemo:icedemo liquidsoap/
cd /var/log/
sudo chown -Rv icedemo:icedemo liquidsoap/
cd /etc/icecast2/
sudo chown -Rv icedemo:icedemo web/
sudo chown -Rv icedemo:icedemo admin/
Оставьте те же разрешения для файла icecast.xml.
Войдите как ваш пользователь Icedemo
su Icedemo
После того, как вы выполнили все вышеперечисленное и ваш сценарий был правильно отформатирован. Что-то вроде этого.
# !/home/iceadmin/.opam/default/bin/liquidsoap
# log dir
set ("log.file.path","/var/log/liquidsoap/basic-radio.log")
set("scheduler.fast_queues",1)
# Music
music = playlist("/opt/liquidsoap/playlists/RadioOne.m3u",mode="normal",reload_mode="watch")
# Start building the feed with music
radio = music
# Stream it out
output.icecast(%mp3(bitrate=256,samplerate=44100,internal_quality=0,id3v2=true,stereo=true,stereo_mode="stereo"),
name="Radio",
encoding="UTF-8",
host="192.168.2.203",
port=8000,
password="hackme",
icy_metadata="true",
description="Internet Radio Station",
mount="Radio",
mksafe(radio))
Нам нужно будет перезапустить каждую службу.
#Restart IceCast
sudo systemctl restart icecast2
#Check status of IceCast
sudo systemctl status icecast2
(Ctrl+Z to go to prompt)
Далее нам нужно будет сделать то же самое с Liquidsoap.
#Restart Liquidsoap
sudo systemctl restart radio.liq-liquidsoap
#Check status of Liquidsoap
sudo systemctl status radio.liq-liquidsoap
(After checking the status, you can use (Ctrl+Z to go to prompt))
Ваш вывод статуса Liquidsoap должен быть похож на мой.
Icedemo@linuxcore-03:~/liquidsoap-daemon$ sudo systemctl status radio.liq-liquidsoap
● radio.liq-liquidsoap.service - radio.liq Liquidsoap daemon
Loaded: loaded (/etc/systemd/system/radio.liq-liquidsoap.service; disabled; vendor preset: enabled)
Active: active (running) since Mon 2021-05-24 03:47:01 UTC; 4s ago
Docs: http://liquidsoap.fm/
Process: 54678 ExecStart=/home/Icedemo/.opam/default/bin/liquidsoap /home/Icedemo/liquidsoap-daemon/script/radio.liq-run.liq (code=exited, status=0/SUCCESS)
Main PID: 54680 (liquidsoap)
Tasks: 9 (limit: 2251)
Memory: 17.3M
CGroup: /system.slice/radio.liq-liquidsoap.service
└─54680 /home/Icedemo/.opam/default/bin/liquidsoap /home/Icedemo/liquidsoap-daemon/script/radio.liq-run.liq
May 24 03:47:01 linuxcore-03 systemd[1]: Starting radio.liq Liquidsoap daemon...
May 24 03:47:01 linuxcore-03 systemd[1]: Started radio.liq Liquidsoap daemon.
Если выше отображается: Active: active (running)
Затем проверьте свою веб-страницу Icecast, и вы должны увидеть свои точки монтирования, а ваше радио должно работать.
Для доступа к радиостанции в нашем примере сценария выше будет.
(local) 192.168.2.203:8000/Radio
Это загрузит плеер в собственном окне браузера, и ваш поток должен запуститься самостоятельно. Если нет, нажмите кнопку ВОСПРОИЗВЕДЕНИЕ.
Это оно; вот как вы заставляете работать свое потоковое радио.
Надеюсь, это поможет другим.
Уэйн
Хорошо, теперь, когда я думаю, что у меня достаточно информации / данных, давайте разберем это:
2018/08/09 04:35:03 [single:3] "~/music/Security/sec.mp3" is static, resolving once for all... 2018/08/09 04:35:05 [single_6363:3] Prepared "/home/darkice/music/Security/sec.mp3" (RID 0).
Ваш внутренний резерв "жидкого мыла", настроенный как "безопасность", только что стал доступен.
2018/08/09 04:35:03 [Jingle(dot)mp3:3] Loading playlist... 2018/08/09 04:35:05 [Jingle(dot)mp3:3] No mime type specified, trying autodetection. 2018/08/09 04:35:05 [Jingle(dot)mp3:3] Could not parse playlist: Not_found 2018/08/09 04:35:05 [Jingle(dot)mp3:3] Got an empty list: keeping the old one.
Нет плейлиста для джинглов. Я предполагаю, что это просто проигнорирует это.
2018/08/09 04:35:05 [musicList:3] Loading playlist... 2018/08/09 04:35:05 [musicList:3] Playlist is a directory. 2018/08/09 04:35:05 [musicList:3] Successfully loaded a playlist of 1 tracks.
"/ home / darkice / music / List / 01 Send Her To Me.mp3" является единственным файлом в указанном каталоге.
2018/08/09 04:35:05 [test(dot)ogg:3] Connecting mount test.ogg for source@192.168.2.4... 2018/08/09 04:35:05 [test(dot)ogg:2] Connection failed: 401, Authentication Required (HTTP/1.0)
Он пытается подключиться к вашему серверу Icecast, но Icecast отклоняет соединение. Наиболее вероятная причина этого состоит в том, что пароль не совпадает с тем, который настроен как <source-password>
в конфиге Icecast.
Вы найдете подробности о том, почему не удалось установить соединение, в файле Icecast error.log на временной отметке. 2018/08/09 04:35:05
- обратите внимание, что может быть смещение, если это другой компьютер, и системное время на каждой машине не синхронизируется, например, с помощью NTP.