Введение
Свободное программное обеспечение с открытым исходным кодом
Music Player Daemon (MPD) — это бесплатный сервер музыкального проигрывателя с открытым исходным кодом. Он воспроизводит аудиофайлы, организует списки воспроизведения и поддерживает музыкальную базу данных. Для взаимодействия с ним требуется клиентская программа. В состав дистрибутива MPD входит mpc — простой клиент командной строки. MPD используется в проприетарном аудиооборудовании. Проект MPD ведет список производителей, некоторые из которых нарушают условия лицензии GPL.
Дизайн
MPD просто работает в фоновом режиме, воспроизводя музыку из своего плейлиста. Клиентские программы взаимодействуют с MPD для управления воспроизведением, плейлистом и базой данных. Это не полноценный музыкальный проигрыватель, такой как Amarok, но его клиенты могут выполнять такую функцию. MPD использует плоскую файловую базу данных для хранения основной информации о музыкальных файлах, когда он не запущен. После запуска демона база данных полностью хранится в оперативной памяти, и для поиска или просмотра локальных аудиофайлов не требуется доступ к жесткому диску. Обычно музыкальные файлы должны располагаться в подкаталоге музыкальной директории и добавляются в базу данных только после отправки команды обновления на сервер. Воспроизведение произвольных файлов допускается, но только для локальных клиентов, подключенных к серверу через Unix Domain Socket. MPD не имеет встроенного редактора тегов; эта функциональность обеспечивается клиентами или внешними программами, хотя существуют сторонние патчи для добавления этой функции непосредственно в сервер. Модель клиент-сервер предоставляет ряд преимуществ по сравнению с комплексными музыкальными проигрывателями. Клиенты могут взаимодействовать с сервером удаленно через интрасеть или Интернет. Сервер может быть компьютером без графического интерфейса, расположенным в любой точке сети. Воспроизведение музыки может продолжаться бесперебойно даже при неиспользовании X-сервера или его перезапуске. Разные клиенты могут использоваться для разных целей – например, легковесный клиент, постоянно работающий для управления воспроизведением, и более функциональный клиент для интенсивного поиска по базе данных. Несколько клиентов могут использовать одну и ту же базу данных одновременно, удаленно или под разными учетными записями пользователей.
Особенности
Воспроизводит Ogg Vorbis, FLAC, Opus, WavPack, MP2, MP3, MP4/AAC, MOD, Musepack, WAV-файлы и любые другие файлы, поддерживаемые FFmpeg. Обеспечивает удаленное управление MPD по сети (поддерживаются IPv4 и IPv6). Воспроизводит HTTP-потоки FLAC, OggFLAC, MP3 и Ogg Vorbis. Читает и кэширует метаданные (ID3: ID3v1 и ID3v2), комментарии Vorbis и метаданные MP4. Метаданные можно искать. Поддержка буферизации для воспроизведения (предотвращает пропуски из-за высокой нагрузки или задержки сети). Бесшовное воспроизведение. Поддержка плавного перехода между треками (crossfading). Поддержка перемотки. Сохранение, загрузка и управление плейлистами (в формате M3U). Встроенная поддержка Zeroconf. libsamplerate и преобразование частоты дискретизации. Поддержка ALSA, PulseAudio, PipeWire, OSS, MVP, JACK, Windows и macOS. Может использоваться в качестве источника для потока Icecast в форматах Ogg Vorbis и MP3. Другие форматы могут быть преобразованы в Ogg/MP3 на лету перед отправкой на сервер потоковой передачи. Встроенный HTTP-сервер потоковой передачи, способный создавать потоки Ogg Vorbis и MP3 заданного качества в режиме реального времени. Не требует графического интерфейса. Музыка будет продолжать воспроизводиться независимо от того, открыт ли клиентский интерфейс, и даже если X-сервер будет завершен. Воспроизводит музыкальные файлы внутри сжатых ZIP-архивов.
Клиенты
MPD имеет множество клиентских приложений, которые взаимодействуют с сервером посредством пользовательского протокола по TCP-соединению. Клиенты обычно реализуют различные типы интерфейсов.
Консоль
mpc (часть проекта MPD) — это простой интерфейс командной строки для доступа к большинству функций сервера. ncmpc (часть проекта MPD) — более функциональный клиент ncurses, концептуально похожий на MOC. ncmpcpp — ещё один ncurses-клиент, повторяющий функциональность ncmpc, но включающий новые возможности, такие как редактор тегов. Practical Music Search — ещё один ncurses-клиент с интерфейсом, напоминающим Vim. fmui — это пользовательский интерфейс терминала, созданный на основе fzf и mpc.
Графический
Ario основан на GTK+ и использует вкладки в своем интерфейсе. Cantata работает в Windows, macOS и Linux и использует Qt 5 для управления библиотекой или плейлистами, а также включает в себя дополнительные функции, такие как редактор тегов, поиск текстов песен и обложек в интернете, и поддержку устройств массового хранения. Cantata получила известность, став стандартным аудиоплеером дистрибутива Linux Kubuntu в октябре 2017 года, заменив Amarok. Gimmix предоставляет простой интерфейс с минимальным потреблением памяти. gmpc – старейший поддерживаемый клиент gtk+ 2 (в разработке версия gtk+ 3), предлагающий множество способов просмотра музыкальной коллекции и расширенные метаданные, включая тексты песен, обложки, информацию об исполнителях и альбомах, фоновые изображения исполнителей и альбомов, похожих исполнителей и многое другое. Клиент стремится сочетать богатый функционал с легковесностью, позволяющей постоянно работать на маломощном оборудовании. Intelligent Music Player Client (IMPC) использует GTK+ 3.0 и поддерживает загрузку сопутствующей информации (статьи, обложки, изображения) для текущей песни, а также способен классифицировать подобный контент. mpdlirc управляет MPD через инфракрасный пульт дистанционного управления. Qmobilempd предоставляет Qt4 клиент, специально разработанный для мобильных устройств, таких как Symbian. Qmpdplasmoid предоставляет клиент, встроенный непосредственно в рабочий стол KDE. Sonata использует GTK+ для обеспечения графического интерфейса для воспроизведения файлов и управления плейлистами.
Мобильные
MPDPilot — современный и удобный MPD-клиент для iOS. M.A.L.P. — быстрый и простой в использовании MPD-клиент для Android.
Больше
Более полный список можно найти на Вики-странице MPD Клиентов. Простые клиенты могут создавать скрипты для отправки команд серверу. Некоторые клиенты предоставляют пользовательский интерфейс HTML или AJAX и могут быть установлены на том же компьютере, что и сервер, требуя лишь наличия браузера на клиентской машине. Существуют клиенты, реализованные в виде расширения для Firefox, плагина панели Xfce, приложения для Wii и приложения для Windows Store для Windows 8/Windows RT. Существуют библиотеки для взаимодействия с MPD из множества языков программирования, включая C, Python, Ruby, Perl, Lua и Haskell. Также есть библиотека Emacs Lisp, позволяющая управлять MPD из Emacs.