MPD, домашнее аудиохранилище

Хотел бы рассказать как на днях решил задачу организации домашнего аудиохранилища.

Для начала, что имеем:

1) стационарный компьютер(ОС — ArchLinux);
2) ноутбук, к которому часто подключается домашняя акустика (ОС — ArchLinux x64);
3) фонотеку ~ 500 Гб, которая находиться на (1).

Что хотелось бы получить в результате (задачи):

1) централизованную библиотеку, к примеру, чтобы созданный на одной машине список воспроизведения был доступен и на другой тоже;
2) возможность управления воспроизведением с любого компьютера;
3) возможность выводить звук на аудиовыход любого компьютера, к примеру, работая на стационарнике и управляя с него слушать музыку на акустике подключенной к ноуту.

Реализация.

Было принято решение использовать mpd, что это писать не буду, про это написано итак много.
В качестве клиента на обоих компьютерах был выбран gpmc (есть и под Windows), главная причина такого выбора возможность переключения выводов звука mpd «на лету». Т.к. использую Gnome 3, звуковая подсистема у меня, по умолчанию, основана на PulseAudio, собственно только он и предоставляет необходимый в данной ситуации функционал.

Ставим всё, что нужно:

На стационарнике:
sudo pacman -S mpd gmpc
На ноуте:
sudo pacman -S gmpc paprefs

Настраиваем:

1. Конфигурируем mpd.
мой mpd.conf:
music_directory "/var/Shared/Media/Music_mp3"
playlist_directory "/home/useer/.mpd/playlists"
db_file "/home/useer/.mpd/mpd.db"
log_file "/home/useer/.mpd/mpd.log"
pid_file "/home/useer/.mpd/pid"
state_file "/home/useer/.mpd/state"
default_permissions "read,add,control,admin"
volume_normalization "yes"
user "mpd"
bind_to_address "any"
port "6600"
audio_output {
type "pulse"
name "Компьютер"
}
audio_output {
type "pulse"
name "Ноутбук"
server "192.168.4.3" #ip-адрес ноутбука
}
filesystem_charset "UTF-8"
id3v1_encoding "UTF-8"


2. Запускаем демона:
sudo /etc/rc.d/mpd start

3. Переходим к буку. Настраиваем PulseAudio (если что — читаем ниже «Трудности»):
paprefs
Ставим галочки:
image

4. Запускаем на любом компьютере gmpc.

Результат:

Имеем единую фонотеку, управляем воспроизведением с любого ПК и выводим звук на любой ПК.
Переключение выходов осуществляется удобно через меню gmpc:
image

Трудности:

При запуске paprefs у меня все пункты настроек не доступны (серые). Это связано с тем что текущая в репозиториях версия paprefs собрана с поддержкой более старой версии PulseAudio и не может найти подключаемые модули, у меня они находятся в /usr/lib/pulse-1.1, а paprefs ищет в /usr/lib/pulse-1.0

Самый простой способ решения — посмотреть где ищет paprefs и создать ссылку с таким именем:
strace paprefs 2>&1 |grep /lib/pulse - посмотреть
ln -s /usr/lib/pulse-1.1/ /usr/lib/pulse-1.0 - создать


Приятного прослушивания!
Поделиться публикацией

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

    0
    Не знал что MPD воспроизводит музыку не только на локальном компе. Надо попробовать
      +2
      Это фишка не mpd, а pulseaudio
        –1
        В данном случае используется pulseaudio, но вообще он не особо нужен. MPD ведь не зря называется сервером.
          +1
          Даже в вашей схеме данные клиенту по сети передаются pulseaudio или icecast. А сервер он потому, что клиент, занимающийся управлением, полностью обособлен, и может быть любым, лишь бы протокол использовал правильно.
            0
            Да, проверил только-что, Вы правы. Мне почему-то казалось, что он может и своими силами передавать аудио-поток.
              +1
              У него есть встроенный HTTP-сервер, которым он умеет вещать, да.
      +3
      Статья из разряда «я умею читать документацию». Нет ничего инновационного.
        +8
        И нанотехнологичного.
          +1
          Давно интересовала вкладка pulseaudio «Network Server», но такого, как здесь, понятного хауту найти не удалось. Помнится, даже думал: «Вот сейчас сам раскурю, напишу в песочницу — инвайт обеспечен :)»
          0
          А скажите, может ли MPD/Pulseaudio передавать не песни, а просто данные с линейного входа/микрофона?
            0
            Имеется в виду по сети на Windows-машину с клиентом?
            +1
            > PulseAudio, собственно только он и предоставляет необходимый в данной ситуации функционал
            ORLY?
            mpd.wikia.com/wiki/Configuration#Remote_Playback
              0
              Попробуйте ampache. Можно играть локально, удаленно, стримить радио, все удобно, плейлисты можно расшаривать.

              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

              Самое читаемое