Установка и настройка MPD (Music Player Daemon) и MPC (Music Player Client) на Raspberry Pi, Orange Pi, Banana Pi

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 хранит свой pid
  • db_file — База данных медиатеки
  • state_file — Хранит текущее состояние MPD
  • playlist_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/:
Установка и настройка MPD (Music Player Daemon) - Замена текста в nano

  1. Нажмите Ctrl+\. Обратите внимание, что в нижней части окна появляется окно;
  2. Затем введите строку /var/lib/mpd/, которую вы хотите заменить, и нажмите Enter;Установка и настройка MPD (Music Player Daemon) - Замена текста в nano (ввод заменяемой строки)
  3. Затем введите строку ~/.config/mpd/, на которую хотите заменить, и нажмите Enter;Установка и настройка MPD (Music Player Daemon) - Замена текста в nano (ввод заменяющей строки)
  4. В этот момент nano переходит к первому экземпляру того, что вы ищете, и показывает вам набор сочетаний клавиш, чтобы заменить все нажмите A;Установка и настройка MPD (Music Player Daemon) - Замена текста в nano (заменить все)
    Установка и настройка MPD (Music Player Daemon) - Замена текста в nano (всё)
  5. Сохраняем 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, должно получиться примерно так:

Установка и настройка MPD и MPC - Автозапуск радио на Orange Pi

Материалы

Использование юнитов
Music Player Daemon (Русский)
help.ubuntu.ru
MPC
mpd_mpc в качестве плеера (небольшой ман)

Похожие записи

Комментарии 358

Добавить комментарий для 스웨디시 테라피 Отменить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *