MPD — музыкальный демон, который отделяет воспроизведение от интерфейса. Он читает библиотеку, декодирует файлы и выводит звук, а управление берёт на себя клиент: ncmpcpp в терминале, mpc в скрипте, приложение на телефоне. Сервер может стоять на маломощной машине, а слушать музыку — с ноутбука в другой комнате. Ниже — установка, конфигурация, вывод звука и работа с очередью.
Из чего состоит связка
MPD хранит базу треков, очередь и состояние плеера. Клиенты подключаются по TCP на порт 6600 и отдают команды текстом. ncmpcpp — полноценный терминальный интерфейс с библиотекой, очередью, поиском, редактором тегов и визуализатором. mpc — минимальный клиент для скриптов и проверки. Один MPD может обслуживать несколько клиентов одновременно.
Запускать демон можно от системного пользователя mpd или как пользовательскую службу. Для домашней машины удобнее второй вариант: музыка лежит в домашнем каталоге, права не нужно менять, а управление идёт через systemctl --user.
Установка
Пакеты есть в репозиториях всех основных дистрибутивов. Кроме самого демона поставьте клиент и утилиты для тегов.
sudo apt install mpd ncmpcpp mpc
systemctl --user status mpd
mpd --version | head -5
mkdir -p ~/.config/mpd/playlists
Если системная служба уже запущена, она займёт порт и будет смотреть в /var/lib/mpd. Отключите её, чтобы не было двух демонов.
sudo systemctl disable --now mpd
systemctl --user disable --now mpd
Конфигурация
Пользовательский конфиг лежит в ~/.config/mpd/mpd.conf. Все пути лучше указывать абсолютными: демон не наследует переменные окружения оболочки.
music_directory "/home/user/Music"
playlist_directory "/home/user/.config/mpd/playlists"
db_file "/home/user/.config/mpd/database"
log_file "/home/user/.config/mpd/log"
pid_file "/home/user/.config/mpd/pid"
state_file "/home/user/.config/mpd/state"
bind_to_address "127.0.0.1"
port "6600"
auto_update "yes"
auto_update заставляет демон замечать новые файлы без ручного сканирования. bind_to_address с localhost означает, что клиенты с других машин не подключатся. Для сети укажите адрес интерфейса, например 192.168.1.10, и обязательно заведите пароль.
password "readonly@read,add,control"
password "admin@read,add,control,admin"
bind_to_address "127.0.0.1"
bind_to_address "192.168.1.10"
Вывод звука
На современном десктопе звуком управляет PipeWire, и MPD подключается к нему через PulseAudio-совместимый интерфейс. Это самый простой путь: микшер видит поток как обычное приложение.
audio_output {
type "pulse"
name "PipeWire"
mixer_type "software"
}
Если нужен прямой вывод на звуковую карту без микшера, используйте ALSA с устройством hw:0,0. Такой вариант даёт бит-перфект, но занимает устройство монопольно: другие приложения не смогут воспроизводить звук. Для наушников и колонок в одной комнате обычно достаточно PulseAudio-совместимого вывода.
Для нормализации громкости включите ReplayGain. Значения тегов вычисляются отдельно, например плагином beets, а MPD применяет их при воспроизведении.
replaygain "album"
Первый запуск и сканирование
После правки конфига запустите службу и обновите базу. Сканирование большой библиотеки занимает время, прогресс виден в журнале.
systemctl --user enable --now mpd
mpc update
mpc stats
mpc ls | head -20
mpc stats показывает количество исполнителей, альбомов, треков и общее время. Если число треков меньше ожидаемого, проверьте права на каталог и поддерживаемые форматы. FLAC, MP3 и OGG поддерживаются штатно; для AAC и редких кодеков может понадобиться отдельный пакет.
Управление из терминала
mpc хорош для скриптов и быстрых проверок. Очередь пополняется по одному треку или целым альбомом, поиск идёт по любым тегам.
mpc add "Artist/Album"
mpc search artist "Artist"
mpc play
mpc status
Порядок и повтор задаются флагами: mpc repeat on, mpc random on, mpc single on. Громкость меняется командой mpc volume 70, а mpc outputs показывает список устройств вывода.
ncmpcpp
Интерфейс настраивается в ~/.ncmpcpp/config. Минимум — адрес сервера и каталог музыки. Остальное можно оставить по умолчанию и включить позже.
mpd_host = "127.0.0.1"
mpd_port = "6600"
mpd_music_dir = "/home/user/Music"
visualizer_fifo_path = "/home/user/.config/mpd/visualizer.fifo"
visualizer_output_name = "Visualizer"
playlist_display_mode = "columns"
Внутри ncmpcpp переключение между экранами идёт цифрами: 1 — очередь, 2 — браузер файлов, 3 — поиск, 4 — медиатека, 5 — редактор плейлистов. В браузере Enter добавляет трек, Space ставит паузу, p запускает воспроизведение. Клавиши можно переназначить в конфиге.
Для визуализатора нужен FIFO-файл и дополнительный вывод в конфиге MPD. Создайте файл, включите output типа fifo и перезапустите службу, иначе индикатор останется пустым.
mkfifo ~/.config/mpd/visualizer.fifo
audio_output {
type "fifo"
name "Visualizer"
path "/home/user/.config/mpd/visualizer.fifo"
enabled "yes"
}
Плейлисты и теги
Очередь можно сохранить как плейлист и вернуть позже. Файлы лежат в каталоге playlists в формате M3U и переносимы между плеерами.
mpc save "вечер"
mpc load "вечер"
mpc playlist
mpc clear
Теги в ncmpcpp редактируются на отдельном экране: выделите трек, нажмите Enter и измените поля. MPD перечитает изменения после mpc update. Массовую правку лучше делать внешним инструментом, а не вручную по одному файлу.
Диагностика
Если клиент не подключается, проверьте службу, порт и адрес привязки. Когда MPD слушает только localhost, клиенты с других устройств не подключатся — это самая частая причина отказа.
systemctl --user status mpd --no-pager
journalctl --user -u mpd -n 60 --no-pager
ss -ltnp | grep 6600
mpc idle
Команда mpc idle ждёт изменения состояния и полезна в скриптах. В журнале ищите ошибки декодера и сообщения о недоступном устройстве вывода. Если звук идёт, но его нет в колонках, проверьте mpc outputs и уровень в микшере системы.
Автозапуск и удалённые клиенты
Пользовательская служба стартует при входе в сессию. Для сервера без графической сессии включите linger, чтобы демон поднимался после загрузки.
sudo loginctl enable-linger $USER
systemctl --user enable mpd
systemctl --user list-unit-files | grep mpd
Клиенты в локальной сети подключаются по адресу сервера и порту 6600. Пароль из конфига вводится в настройках клиента. Публиковать порт в интернет не нужно: для доступа снаружи поставьте обратный прокси с аутентификацией или используйте SSH-туннель.
Чек-лист
- Системная служба MPD отключена, работает пользовательская.
- Все пути в конфиге абсолютные, каталоги существуют.
- Вывод звука проверен, микшер видит поток.
- Для сети задан пароль и ограничен адрес привязки.
- База обновлена, количество треков совпадает с ожидаемым.
- Плейлисты и конфиг включены в резервную копию.
Итог
MPD и ncmpcpp дают лёгкий музыкальный сервер, который не зависит от графической оболочки. Демон занимает минимум памяти, клиенты подключаются с любого устройства, а библиотека остаётся обычным каталогом с файлами. Настройте пользовательскую службу, проверьте вывод звука и закройте порт паролем — дальше система работает годами без вмешательства.