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

Web-based плеер на linux - подскажите, чем организовать?

 

3
Demuri @Demuri
Друзья, прошу подсказки.
Нужно запустить плейлист на debian сервере. Airtime так и не удалось заставить звучать в эфир. Сейчас все, что требуется - дать возможность далекому от IT человеку закачать на сервер аудиофайлы, собрать их в плейлист и запустить его по кругу. Что-то типа плеера с веб-мордой. Желательно бесплатный.

419
gyurgin_ @gyurgin_
Ну тут надо понимать, чтобы
Demuri пишет:

дать возможность далекому от IT человеку закачать на сервер аудиофайлы, собрать их в плейлист и запустить его по кругу..

надо толковому специалисту довольно прилично оснастить Ваш сервер, насколько я понял самому Вам это не по силам, ищите, может кто возьмется.
Однако самый простой вариант могу подсказать, ставите ********** и клиента к нему, например **********.
Останется присобачить к клиенту вот такой например ********** ну и что там еще понадобится дописать. Все - Ваша задача будет выполнена.

245
radio_good @radio_good
запустить плейлист на debian сервере.


самое простое и "топорное" это конечно традиционная связка icecast+ices
через 30 минут у вас уже играет примитивный плейлист с музычкой из папки ...

Что-то типа плеера с веб-мордой

с веб мордой .. нужен еще и веб-сервер ... что накладывает опрд. нагрузку на ваш севре/ram
выход - desktop (LXDE/XRDP под Win)

Отредактировано radio_good - 14.03.2017
3
Demuri @Demuri
gyurgin_ пишет:

надо толковому специалисту довольно прилично оснастить Ваш сервер, насколько я понял самому Вам это не по силам

Оснащать сервера мне как раз по силам, знать бы только, чем оснащать :) Теперь благодаря Вам есть понимание, спасибо.

radio_good пишет:

традиционная связка icecast+ices

Я как раз в организации радио не особо понимаю, поэтому до ices не докопался. Спасибо, вполне себе вариант, тоже буду пробовать.

419
gyurgin_ @gyurgin_
radio_good пишет:

с веб мордой .. нужен еще и веб-сервер ... что накладывает опрд. нагрузку на ваш севре/ram
выход - desktop (LXDE/XRDP под Win)

Ну спросили же с вебмордой, я как раз дал клиента который сам себе вебсервер.
Вот попробовал, на все ушло 50 минут, Вам даю вариант в котором учтены все капризы mpd и он проверенно работает.
Исходные данные такие: есть пользователь radio, он в группе sudo, в его домашней есть папка mpd, в ней music, там есть некое количество музыки, установлен и настроен icecast и есть поток /mpd, поток запаролен.
Каждая строка - отдельная команда:
apt-get install mpd libmpdclient2 libmpdclient-dev
mkdir /home/radio/mpd/playlists
> /home/radio/mpd/tag_cache
chmod 777 /home/radio/mpd -R
cd /home/radio/mpd
git clone **********
cd ympd/src; mkdir -p build; cd build
cmake ../.. -DCMAKE_INSTALL_PREFIX_PATH=/usr
make
make install
mv /etc/mpd.conf /etc/mpd.default
nano /etc/mpd.conf


туда пишем:

music_directory "/home/radio/mpd/music"
playlist_directory "/home/radio/mpd/playlists"
db_file "/home/radio/mpd/tag_cache"
log_file "/home/radio/mpd/mpd.log"
pid_file "/home/radio/mpd/pid"
state_file "/home/radio/mpd/state"
sticker_file "/home/radio/mpd/sticker.sql"
user "radio"
bind_to_address "localhost"
port "6600"
log_level "default"
restore_paused "no"
save_absolute_paths_in_playlists "no"
auto_update "yes"
default_permissions "read,add,control,admin"
audio_output {
type "shout"
encoding "mp3"
name "Test MPD Stream"
host "localhost"
port "8000"
mount "/mpd"
password "пароль"
bitrate "128"
format "44100:16:1"
protocol "icecast2"
user "source"
description "Test MPD Stream"
url "ваш url"
genre "various"
public "no"
timeout "2"
mixer_type "software"
}
filesystem_charset "UTF-8"
id3v1_encoding "UTF-8"


сохраняем, перезапускаем MPD

service mpd restart

ругнется "db: Database corrupted", так и надо
запускаем вебморду

ympd -w 8888

идем по ip сервера:8888 видим сабж, пользуемся.
Веб морду после запуска можно погасить, только кроссфейд навернется, а так будет продолжать играть.
Подогнать данный гайд под себя как нефиг делать, пробовал на ubuntu 14, на debian думаю прокатит и надеюсь не надо обьяснять что в системе уже должны быть git, build-essential, lame и тд и тп.

Отредактировано gyurgin_ - 15.03.2017
419
gyurgin_ @gyurgin_
Ребят, нашел форк с авторизацией, обновил гайд, смотрим внимательно если кто начал делать.
Файл авторизации создается так: htdigest -c /home/radio/mpd/.htdigest ympd <имя пользователя>
обратите внимание -c указывается только при первом запуске
запускать так: ympd -d "/home/radio/mpd/.htdigest" -w 8888
также есть поддержка ssl, сливаем key и все части сертификата в один pem файл, запускаем так:
ympd -d "/home/radio/mpd/.htdigest" -w "ssl://8888:<полный путь к файлу сертификата>"
Вот теперь пожалуй все.

3
Demuri @Demuri
gyurgin_ пишет:

Ребят, нашел форк с авторизацией

О, вот прям то, что доктор прописал :) Спасибо!

419
gyurgin_ @gyurgin_
Слушайте, мне эта хрень даже понравилась, нормальная такая шармака для запуска тестовых фонограмм для проверки тракта, а кому то сойдет и за autodj. Одно некрасиво - не запускается как daemon.
Решение - я init скрипт не даю, не у всех прижевется, поэтому по-простому, каждый блок - отдельная команда:
apt-get install daemon
делаем cтартовый скрипт:
echo '#!/bin/sh
ympd -d "/home/radio/mpd/.htdigest" -w "ssl://8888:<путь к сертификату>"' > '/home/radio/mpd/ympd_start.sh'; chmod +x "/home/radio/mpd/ympd_start.sh"

скрипт отключения:
echo -e '#!/bin/sh
ps -ef | grep -v grep | grep ympd | awk \x27{print $2}\x27 | xargs kill -9' > '/home/radio/mpd/ympd_stop.sh'; chmod +x "/home/radio/mpd/ympd_stop.sh"

запускаем теперь так:
daemon sh "/home/radio/mpd/ympd_start.sh"
проверить так:
ps -ef | grep -v grep | grep ympd
Может кому пригодится.
Я там дописал еще вебморду, но тут на вкус и цвет, да и нет желания дальше развивать, такая шарманка для тестов меня устраивает вполне.