Давно уже хотел опробовать возможность проигрывать музыку по сети. Пока еще у меня не было домашнего сервера, разные идеи крутились в голове, такие как вещание mpd посредством http-потока или через pulseaudio. Собственно, второй вариант мне приглянулся больше, в сети есть куча различных мануалов, однако для меня это не было такой уж тривиальной задачей из-за различных версий программ, дистрибутивов и конфигов. Стало быть, настала пора выложить в сеть еще один. :3
Сначала посмотрим, что есть для решения сей замечательной задачи:
- Ноутбук без дисплея, работающий в качестве сервера. Обладая весьма скромными характеристиками (CPU 1.7 Ghz, RAM 512 Mb), содержит в себе операционную систему Calculate Directory Server 12.
- Стационарный компьютер с SSD (это один из ключевых моментов, домашний сервер помимо экспериментов нужен также для разгрузки ресурсов основного компьютера, особенно это касается твердотельного накопителя с целью продления срока службы) с установленной на нем Calculate Linux Desktop 12 с KDE.
- Компьютер с Windows на компьютере в соседней комнате, о нем напишу возможно немного позже.
Итак, приступим.
1. Установка Mpd.
Здесь все достаточно просто, единственное, что хотелось бы отметить, я не разделяю пристрастия запускать mpd от пользователя, что также относится и к pulseaudio на стороне сервера. На десктопе pulseaudio запускается от простого юзера, чем занимается непосредственно KDE и особо меня не волнует.
Заходим на сервер по ssh, вводим пароль.
$ ssh thagraal@gasper
Ставим mpd. Флаг -q ставлю специально для работы по ssh, ранее при длинной компиляции мне выдавало ошибку о слишком большом потоке и разрывало соединение. Можно прописать в make.conf по умолчанию.
$ sudo emerge -avq mpd
[ebuild N ] media-sound/mpd-0.16.5 USE="alsa bzip2 cue curl ffmpeg fifo flac id3tag ipv6 mad network pulseaudio sqlite tcpd unicode vorbis wavpack -aac -ao -audiofile -cdio -debug -fluidsynth -inotify -jack -lame -lastfmradio -libsamplerate -mikmod -mms -modplug -mpg123 -musepack -ogg -openal -oss -pipe -profile -sid -sndfile -twolame -wildmidi -zeroconf -zip"
Would you like to merge these packages? [Yes/No]
Эти use-флаги (в частности pulseaudio) на данный момент меня устраивают, соглашаюсь и начинаю установку.
Конфигурирую mpd:
$ sudo vim /etc/mpd.conf
Укажу лишь параметры, которые я менял:
# Директория с музыкой, расшаренная по самбе
music_directory "/var/calculate/server-data/samba/share/sound"
# Для работы по сети
bind_to_address "any"
port "6600"
# Аудио-вывод на десктоп, опция sink специально закомментирована, с включеной опцией у меня не заработало
audio_output {
type "pulse"
name "My Pulse Output"
server "melchior"
# sink "remote_server_sink" # optional
}
# Буферизируем для уменьшения искажения звука
audio_buffer_size "2048"
buffer_before_play "10%"
Собственно, все, запускаем mpd.
$ sudo rc-update add mpd default
$ sudo /etc/init.d/mpd start
2. Установка pulseauido.
Добавляю флаг pulseaudio в make.conf
$ sudo vim /etc/make.conf
USE="pulseaudio"
Активирую system-wide для возможности работы pulseaudio в качестве демона. Делать это настоятельно не рекомендуют, но как я уже говорил, работать с демонами мне сподручнее, да и в целом такая установка проще, как советует гентушная вики.
$ sudo vim /etc/portage/profile/use.mask
-system-wide
$ sudo vim /etc/portage/package.use/custom
media-sound/pulseaudio system-wide
Ставлю pulseaudio
$ sudo emerge -avq pulseaudio
[ebuild N ] media-sound/pulseaudio-1.1-r1 USE="alsa asyncns caps gdbm glib ipv6 orc ssl system-wide tcpd udev -X -avahi -bluetooth -dbus -doc -equalizer -gnome -jack -libsamplerate -lirc (-oss) -realtime -test"
Would you like to merge these packages? [Yes/No]
Устанавливаем и переходим к конфигурированию:
$ sudo echo "PULSEAUDIO_SHOULD_NOT_GO_SYSTEMWIDE=1" >> /etc/conf.d/pulseaudio
$ sudo echo "load-module module-native-protocol-tcp auth-anonymous=1" >> /etc/pulse/default.pa
Те же настройки я сделал на десктопе. Запускаем pulseaudio и добавляем в автозагрузку.
$ sudo rc-update add pulseaudio default
$ sudo rc-service pulseaudio start
3. Осталось только настроить клиент на стационарной машине. Мне нравится ncmpcpp. Переключаемся на другую вкладку терминала или выходим из ssh.
$ sudo emerge -av ncmpcpp
Конфигурируем. Примерный конфиг ncmpcpp можно взять на /usr/share/doc/ncmpcpp-0.5.10/config.bz2, но меня и дефолтные настройки вполне устраивают, поэтому я указываю только самое необходимое.
$ mkdir ~/.ncmpcppКак уже можно было догадаться, gasper и melchior - это имена сервера и десктопа соответственно. Прописывается это дело в /etc/hosts, но никто не мешает прописывать айпишники напрямую.
$ vim ~/.ncmpcpp/config
mpd_host="gasper"
mpd_port="6600"
mpd_music_dir="/var/calculate/server-data/samba/share/sound"
Запускаем клиент.
$ ncmpcpp
Нажимаем 'u' для обновления базы, добавляем музыку в плейлист и слушаем бархатный голос Хатсуне Мику. :3
Комментариев нет:
Отправить комментарий