ExtJS MPD

Музыкальный центр на Linux 1


Продолжая цикл записей про домашний сервер на базе , рассмотрим вариацию с созданием, на его базе, музыкального центра.

В качестве плеера используем , благодаря своей клиент-серверной архитектуре он подходит для таких целей идеально. Серверная часть работает как демон, воспроизводит музыку и принимает управляющие команды от клиентского приложения. При этом клиентом может быть графическое GTK/Qt приложение, консольная утилита или веб-интерфейс (есть даже плагин для firefox). Для использования с консольным сервером наиболее пригоден последний вариант — веб-интерфейс, он позволяет управлять музыкальным центром как с ПК, так и с любого мобильного устройства имеющего браузер и подключение к домашней WiFi-сети.

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

Установим требуемые пакеты:

[email protected]:~$ apt-get install mpd mpc libapache2-mod-php5 php5-json icecast2

Все настройки mpd расположены в конфигурационном файле /etc/mpd.conf:

music_directory         "/media/music"
playlist_directory      "/media/playlists"
db_file                 "/var/lib/mpd/db"
bind_to_address         "localhost"
port                    "6600"
default_permissions     "read,add,control,admin"
audio_output {
type            "alsa"
name            "My ALSA Device"
device          "hw:0,0"
format          "44100:16:2" 
mixer_device    "default"
mixer_control   "PCM"
mixer_index     "0" 
}
audio_output {
type            "shout"
name            "My Shout Stream"
host            "localhost"
port            "8000"
mount           "/stream.ogg"
password        "secret"
bitrate         "128"
protocol       "icecast2" 
user            "source" 
description     "My Stream" 
timeout         "2"
}
mixer_type              "software"
filesystem_charset      "UTF-8"

В приведенной конфигурации управление mpd возможно только с локального компьютера, именно поэтому разрешены все команды без пароля. После указания music_directory попросим mpd принудительно обновить базу данных аудио-файлов:

[email protected]:~$ invoke-rc.d mpd stop
[email protected]:~$ mpd --create-db

Пока база создается, скачаем и установим веб-интерфес для mpd. К сожалению проект pitchfork мертв, из живых мне больше всего понравился ExtJS MPD.

[email protected]:~$ cd /var/www
[email protected]:/var/www$ wget http://crsw.dk/Projects/Mpd/ExtMPD_1.3.tgz
[email protected]:/var/www$ tar xfv ExtMPD_1.3.tgz
[email protected]:/var/www$ chmod -R www-data: ExtMPD

Этого достаточно чтобы открыв в браузере http://<ip сервера>/ExtMPD/ увидеть примерно следующее:

ExtJS MPD

Осталось настроить сервер потокового мультимедиа в лице icecast. Для этого в файле /etc/icecast2/icecast.xml исправим следующее:

<authentication>
<!-- Sources log in with username 'source' -->
<source-password>secret</source-password>
<!-- Relays log in username 'relay' -->
<relay-password>secret</relay-password>
<!-- Admin logs in with the username given below -->
<admin-user>admin</admin-user>
<admin-password>secret</admin-password>
</authentication>
...
<listen-socket>
<port>8000</port>
<bind-address>0.0.0.0</bind-address>
</listen-socket>

Чтобы изменения вступили в силу, рестартуем icecast:

[email protected]:~$ invoke-rc.d icecast2 restart

После этого аудио поток будет доступен по адресу http://<ip сервера>:8000/stream.ogg. Приятного прослушивания!


Мысль на тему “Музыкальный центр на Linux

Комментарии закрыты