1

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

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

2

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

Ну тут надо понимать, чтобы

Demuri пишет:

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

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

3

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

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

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

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

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

Отредактировано radio_good (14-03-2017 19:29:14)

4

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

gyurgin_ пишет:

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

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

radio_good пишет:

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

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

5

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

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 https://github.com/SuperBFG7/ympd
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 11:14:17)

6

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

Ребят, нашел форк с авторизацией, обновил гайд, смотрим внимательно если кто начал делать.
Файл авторизации создается так:

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:<полный путь к файлу сертификата>"

Вот теперь пожалуй все.

7

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

gyurgin_ пишет:

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

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

8

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

Слушайте, мне эта хрень даже понравилась, нормальная такая шармака для запуска тестовых фонограмм для проверки тракта, а кому то сойдет и за 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

Может кому пригодится.
Я там дописал еще вебморду, но тут на вкус и цвет, да и нет желания дальше развивать, такая шарманка для тестов меня устраивает вполне.