MPD (music player daemon) — это музыкальный проигрыватель с клиент-серверной архитектурой, воспроизводящий музыку и заданного каталога. Принцип работы заключается в запуске собственно плеера (демона) на сервере и управлении им при помощи любого из богатого выбора клиентов, один из них — MPC (Music Player Client).
Возможен запуск MPD на локальном компьютере (к примеру Raspberry Pi, Orange Pi, Banana Pi и т.п.) и управлять им подключая клиент к localhost
.
Преимущества данного плеера:
- легковесность;
- быстрота работы (приложение кэширует файлы и управление в клиентах осуществляется без задержек при добавлении файлов в плейлисты);
- продолжение воспроизведения при прерывании с сохраненного места в треке;
- автообновление базы данных при добавлении новых файлов;
- управление с любого устройства в сети.
Установка MPD (Music Player Daemon)
Рассмотрим процесс установки и первоначальной настройки демона.
Установим с помощью apt-get
(или любым удобным для вас способом). Пакет mpd находится в официальных репозиториях Ubuntu, поэтому для установки необходимо выполнить команду:
sudo apt-get install mpd
Настройка MPD (Music Player Daemon)
MPD можно запускать локально (используя конфигурацию пользователя), глобально (настройки применяются для всех пользователей), а также в нескольких экземплярах. Способ запуска (и настройки) зависит от того, как вы хотите использовать MPD (например, для использования на домашней системе более полезен запуск локально).
Чтобы Music Player Daemon мог воспроизводить аудио, необходимо настроить вывод звука через ALSA или OSS (возможно использование PulseAudio).
Настройка Music Player Daemon осуществляется редактированием /etc/mpd.conf
. Расположение этого файла зависит от того, каким образом вы запускали MPD. Далее перечислены наиболее используемые параметры:
pid_file
— Файл, в котором MPD хранит свой piddb_file
— База данных медиатекиstate_file
— Хранит текущее состояние MPDplaylist_directory
— Директория, в которую сохраняются плейлистыmusic_directory
— Директория, сканируемая MPD, при поиске музыкиsticker_file
— Файл с метаданными аудиотреков (sticker database)auto_update
— Этот параметр включает автоматическое обновление базы данных MPD при изменении файлов вmusic_directory
.
Примечание: Файлы должны существовать (пути, указанные при настройке) с правильными правами, иначе MPD не запустится.
Глобальные настройки
По умолчанию /etc/mpd.conf
использует /var/lib/mpd
и запускается от пользователя mpd. Но, т.к. /var/lib/mpd
по умолчанию принадлежит пользователю root
, вы должны изменить владельца папки, иначе mpd
не сможет писать в нее:
chown -R mpd /var/lib/mpd
Директория с музыкой
Измените /etc/mpd.conf
и добавьте в строку music_directory
путь к вашей папке с музыкой:
music_directory /путь/к/музыке
MPD должен иметь разрешение на выполнение (+x) для всех директорий музыкальной коллекции, а также доступ на чтение во все директории, содержащие музыкальные файлы. Как правило, это противоречит со стандартной конфигурацией, в которой пользователи хранят свою музыку в своём домашнем каталоге.
Для решения данной проблемы существует несколько способов, которые могут помочь:
- запуск MPD от имени текущего пользователя
- добавить пользователя mpd в текущую пользовательскую группу и предоставить разрешения группе к вашему пользовательскому каталогу:
gpasswd -a mpd <ваша пользовательская группа> chmod 710 /home/<ваш пользовательский каталог>
- поместить свою музыкальную коллекцию в другой каталог путём
- полного её перемещения в каталог, доступный mpd;
- монтированием папки с привязкой к каталогу, в который у mpd есть доступ, например:
mkdir /var/lib/mpd/music echo "/путь/к/пользовательской/музыке /var/lib/mpd/music none bind" >> /etc/fstab mount -a
- в случае с фс Btrfs — подразделом Btrfs (необходимо сделать данные изменения постоянными, путём редактирования файла /etc/fstab);
- созданием символической ссылки на папку с музыкой в /var/lib/mpd/music:
mkdir /var/lib/mpd/music ln -s /путь/к/пользовательской/музыке /var/lib/mpd/music/
В конфигурационном файле mpd может быть указана только одна директория с музыкой. Если музыкальная коллекция содержится в различных директориях, создайте символические ссылки в главную директорию (/var/lib/mpd). Не забудьте установить правильные права на эти директории.
Запуск MPD
MPD можно контролировать через service
. Первый запуск может занять некоторое время, пока MPD будет сканировать вашу папку с музыкой.
Запуск:
sudo service mpd start
или
sudo /etc/init.d/mpd start
Остановка:
sudo service mpd stop
или
sudo /etc/init.d/mpd stop
Перезапуск:
sudo service mpd restart
или
sudo /etc/init.d/mpd restart
Показать статус, а также запущен он или нет:
sudo service mpd status
или
sudo /etc/init.d/mpd status
Настройка аудиовыхода
Чтобы изменить громкость mpd независимо от других программ, раскомментируйте или добавьте этот параметр в mpd.conf
в разделе audio_output
:
mixer_type "software"
Пользователи ALSA захотят иметь следующие конфигурации аудио выхода:
audio_output { type "alsa" name "My ALSA Device" mixer_type "software" # optional }
таким образом MPD клиенте сможет программно управлять громкостью отдельно от других приложений.
Пользователям PulseAudio потребуется внести следующие изменения:
audio_output { type "pulse" name "pulse audio" }
Смена пользователя
Изменение группы, в которой работает MPD, может привести к таким ошибкам, как:
-
output: Failed to open "My ALSA Device"
-
[alsa]: Failed to open ALSA device "default": No such file or directory
-
player_thread: problems opening audio device while playing "Song Name.mp3"
Это связано с тем, что пользователи MPD должны быть частью аудиогруппы для доступа к аудио устройствам в каталоге /dev/snd/
. Чтобы исправить это, сделайте пользователя MPD частью аудиогруппы:
gpasswd -a mpd audio
Локальная конфигурация (для каждого пользователя)
MPD может быть настроен для каждого пользователя (а не типичный метод глобальной настройки). Запуск MPD как обычного пользователя имеет следующие преимущества:
- Один каталог
~/.config/mpd/
или~/.mpd/
(или любой другой каталог), который будет содержать все файлы конфигурации MPD. - Проще избежать непредвиденных ошибок разрешения на чтение/запись.
Хорошей практикой является создание единого каталога для необходимых файлов и плейлистов. Это может быть любой каталог, к которому у вас есть права на чтение и запись, например, ~/.config/mpd/
или ~/.mpd/
.
Создайте каталог для текущего пользователя ~/.config/mpd/
или ~/.mpd/
:
mkdir ~/.config/mpd/
Скопируйте пример файла конфигурации в нужное место, например:
cd /usr/share/doc/mpd/examples gunzip mpdconf.example.gz cp /usr/share/doc/mpd/examples/mpdconf.example ~/.config/mpd/mpd.conf
Если файлы /usr/share/doc/mpd/examples/mpdconf.example.gz
или /usr/share/doc/mpd/examples/mpdconf.example
не существуют, можете создать новый файл и прописать в нём все параметры:
touch ~/.config/mpd/mpd.conf
или скопировать существующий /etc/mpd.conf
файл и заменить все пути, к примеру:
cp /etc/mpd.conf ~/.config/mpd/mpd.conf
открыть этот файл:
nano ~/.config/mpd/mpd.conf
и заменить /var/lib/mpd/
на ~/.config/mpd/
:
- Нажмите
Ctrl+\
. Обратите внимание, что в нижней части окна появляется окно; - Затем введите строку
/var/lib/mpd/
, которую вы хотите заменить, и нажмите Enter; - Затем введите строку
~/.config/mpd/
, на которую хотите заменить, и нажмите Enter; - В этот момент nano переходит к первому экземпляру того, что вы ищете, и показывает вам набор сочетаний клавиш, чтобы заменить все нажмите A;
- Сохраняем
Ctrl+X
,Y
,Enter
.
Отредактируйте ~/.config/mpd/mpd.conf
и укажите необходимые файлы:
# Required files db_file "~/.config/mpd/tag_cache" log_file "~/.config/mpd/mpd.log" # Optional music_directory "~/music" playlist_directory "~/.config/mpd/playlists" pid_file "~/.config/mpd/pid" state_file "~/.config/mpd/state" sticker_file "~/.config/mpd/sticker.sql" # User user "pi" # Audio Output audio_output { type "alsa" name "PI ALSA Device" device "hw:0,0" # optional format "44100:16:2" # optional mixer_type "software" # optional }
Создайте все файлы и каталоги, указанные выше:
mkdir ~/music mkdir ~/.config/mpd/playlists touch ~/.config/mpd/{database,log,pid,state,sticker.sql}
После завершения настроек:
нужно настроить права пользователя:
sudo chown -R pi:pi /home/pi/.config/mpd/ sudo chmod 755 /home/pi/.config/mpd/*
убить текущую сессию:
sudo mpd --kill
запустить новую сессию и перезапустить службу:
mpd sudo service mpd restart
Клиенты/установка mpc
Для использования mpd необходим отдельный клиент. Список клиентов можно просмотреть по ссылке mpd_wiki, один из клиентов — это mpc. mpc — клиент, использующий для управления mpd-сервером интерпретатор командной строки.
Установить клиент можно с помощью apt-get
, поэтому для установки необходимо выполнить команду:
sudo apt-get install mpc
Чтобы посмотреть список всех команд, необходимо выполнить:
mpc help
здесь же рассмотрим лишь несколько команд управления музыкой:
mpc pause
— приостановить проигрывание музыкиmpc stop
— остановить проигрывание музыкиmpc next
— следующий трек в плейлистеmpc prev
— предыдущий трек в плейлистеmpc random
— включит режим случайной следующей песниmpc listall
— показать список всех треков в базеmpc playlist
— показать текущий плейлистmpc volume [+-]<num>
— установить громкость на <num> (от 0 до 100) или настроить с помощью [+ -] <num>mpc play [<position>]
— начинает играть с позиции <position>
Как играть музыку
Для начала нужно скопировать музыку (mp3 файлы) в папке /var/lib/mpd/music
(или ~/music
, смотря какой путь вы указали в music_directory
в файле mpd.conf
).
дальше чистить плейлист:
mpc clear
после этого обновить музыкальную директорию, если не хотите делать каждый раз, тогда нужно установить параметр auto_update "yes"
в файле mpd.conf
:
mpc update
добавить музыку в плейлист:
mpc add <имя папки или файла>
и запустить проигрывание:
mpc play
Регулировать громкость можно с помощью команды:
mpc volume 50
что соответствует 50% от максимальной мощности. Можно прибавить на 10% mpc volume +10
или убавить mpc volume -10
. Чтобы можно было управлять громкостью, необходимо установить mixer_type "software"
в разделе audio_output
в файле mpd.conf
.
Как слушать интернет радио
Если вы любите слушать радио, к примеру шансон, вы это можете сделать без проблем.
Для начала нужно найти поток (ссылку) на вашу любимую радиостанцию, для шансона я нашёл следующий(ую):
http://chanson.hostingradio.ru:8041/chanson256.mp3
дальше нужно чистить плейлист, чтобы играло только радио:
mpc clear
далее нужно добавить поток в плейлист:
mpc add http://chanson.hostingradio.ru:8041/chanson256.mp3
и запустить плеер:
mpc play
и не забываем о главном, установить громкость на максимум, ну хотя бы на 90%:
mpc volume 90
ну, а если вы очень сильно любите слушать радио и хотите, чтобы ваша любимая станция запустилась вместе с вашим компьютером (Raspberry Pi, Orange Pi, Banana Pi или др.), тогда нужно будет добавить все эти 4 команды в файле /etc/rc.local
до exit 0
, должно получиться примерно так:
Материалы
Использование юнитов
Music Player Daemon (Русский)
help.ubuntu.ru
MPC
mpd_mpc в качестве плеера (небольшой ман)
Есть ли возможность просматривать программу передач интернет-радио?
В частности в клиенте Cantana.
Спасибо, +