MPD (Music Player Daemon) - сервер для воспроизведения музыки дома и в офисе
MPD - Music Player Daemon, демон, позволяющий без особых ресурсозатрат воспроизводить аудиофайлы. Работает по принципу клиент/сервер, причём клиент может располагаться как на самом сервере, так и на другой машине в локальной сети. Внимание: установка и настройка MPD - только половина работы, обязательно необходим клиент для управления воспроизведением.
В этой статье я покажу как поставить демона и заставить его петь песни на самом сервере и на подключающихся по сети компьютерах. В качестве ОС будет использована Ubuntu версий 10.04 и 11.04.
Установка
Для начала ставим демона на сервер:
sudo apt-get install mpd
Т.к. это демон - он не ест много ресурсов, следовательно не будет мешаться на вашем сервере, каким бы маломощным он ни был.
Настройка
Нам необходимо редактировать файл /etc/mpd.conf, в котором находятся все настройки mpd.
Разработчики не поленились и хорошо расписали комментарии.
Прописываем нужные папки, сокращаем комментарии, приводим его в человеческий вид:
# Корректировка по статье на http://wikiadmin.net
# Папка с музыкой
music_directory "/home/ibis/Music"
# Папка с плейлистами
playlist_directory "~/.mpd/playlists"
# Файл базы данных
db_file "~/.mpd/mpd.db"
# Файл, где будут жить логи ошибок
log_file "~/.mpd/mpd.log"
# process identificator file
# Требует права 644 для пользователя, от которого запускается
pid_file "/var/run/mpd/pid"
# Текущий список воспроизведения
state_file "~/.mpd/state"
# Пользователь, который имеет право запускать демона
# Нельзя запускать демона от root
user "ibis"
# Настройки доступа по сети
# Разрешение доступа - "localhost" или "any"
# Порт (по умолчанию)
# bind_to_address "any"
# port "6600"
# Настройки вывода аудио
# Не стоит их стирать, пока вы не убедитесь, что всё работает безупречно
audio_output {
type "alsa"
name "My ALSA Device"
device "hw:0,0" # optional
# format "44100:16:2" # optional
mixer_device "default" # optional
mixer_control "PCM" # optional
mixer_index "0" # optional
}
# An example of an OSS output:
#
#audio_output {
# type "oss"
# name "My OSS Device"
# device "/dev/dsp" # optional
# format "44100:16:2" # optional
# mixer_device "/dev/mixer" # optional
# mixer_control "PCM" # optional
#}
#
# An example of a shout output (for streaming to Icecast):
#
#audio_output {
# type "shout"
# encoding "ogg" # optional
# name "My Shout Stream"
# host "localhost"
# port "8000"
# mount "/mpd.ogg"
# password "hackme"
# quality "5.0"
# bitrate "128"
# format "44100:16:1"
# protocol "icecast2" # optional
# user "source" # optional
# description "My Stream Description" # optional
# genre "jazz" # optional
# public "no" # optional
# timeout "2" # optional
#}
#
# An example of a httpd output (built-in HTTP streaming server):
#
#audio_output {
# type "httpd"
# name "My HTTP Stream"
# encoder "vorbis" # optional, vorbis or lame
# port "8000"
# quality "5.0" # do not define if bitrate is defined
# bitrate "128" # do not define if quality is defined
# format "44100:16:1"
#}
#
# An example of a pulseaudio output (streaming to a remote pulseaudio server)
#
#audio_output {
# type "pulse"
# name "My Pulse Output"
# server "remote_server" # optional
# sink "remote_server_sink" # optional
#}
#
## Example "pipe" output:
#
#audio_output {
# type "pipe"
# name "my pipe"
# command "aplay -f cd 2>/dev/null"
## Or if you're want to use AudioCompress
# command "AudioCompress -m | aplay -f cd 2>/dev/null"
## Or to send raw PCM stream through PCM:
# command "nc wikiadmin.net 8765"
# format "44100:16:2"
#}
#
## An example of a null output (for no audio output):
#
#audio_output {
# type "null"
# name "My Null Output"
#}
#
# This setting will change all decoded audio to be converted to the specified
# format before being passed to the audio outputs. By default, this setting is
# disabled.
#
#audio_output_format "44100:16:2"
#
# На всякий пожарный оставляем эту строчку
#
#samplerate_converter "Fastest Sinc Interpolator"
#
###############################################################################
# Кодировка тегов
id3v1_encoding "UTF-8"
Чтобы демон не стучал в пустоту - создаём каталог playlists и файлы mpd.db, mpd.log и state:
Запускается от простого пользователя, интуитивно настраивается в пару кликов мышью, при первом запуске необходимо ввести ip сервера или поставить галочку о том, что клиент соседствует с mpd на одной машине, при желании указать имя профиля и подключиться. Плейлисты создются путём выбора исполнителя - альбома - названия и двойного щелчка по необходимым исполнителям, альбомам, композициям. поддерживается выделение с помощью shift. Не забудьте в настройках на вкладке Server (Сервер) поставить галочку Stop music on exit (Останавливать воспроизведение при выходе), иначе клиент закроете - а демон продолжит воспроизведение. ario тоже не мешается, т.к. висит в трее.
Данные настройки просты на десктоп-машине. Для установки на сервере нужно так же настроить ALSA.