Вывод звука на другой компьютер по Wi-Fi

Человеку свойственно лениться. И как факт, лень — это двигатель прогресса. Вот и я что-то совсем обленился, с появлением нетбука возникла проблема: колонки подключены к ноутбуку, сам же я обычно на кровати с нетбуком. Каждый раз, слушая музыку, вставать и подходить к ноутбуку для переключения трека или изменения громкости порой бывает очень лениво. Как всегда, нашел решение в виде вывода потока звука с нетбука на ноутбук по Wi-Fi. Этот вариант подойдет тем, у кого 2 (или более) компьютера с Linux подключены к одному Wi-Fi роутеру.

Суть метода заключается в настройке стандартной функции PulseAudio - трансляция звукового потока по сети. На компьютере с колонками необходимо правильно настроить звуковой сервер на прием звукового потока с определенных IP-адресов, а на втором компьютере, с которого будем управлять звуком, настроить вывод потока по сети. Перейдем от теории к практике.

Настройка клиента

С настройкой клиента все до боли просто. Ставим утилиту, которая сидит в трее и позволяет быстро переключаться между серверами pulseaudio:

sudo apt-get install padevchooser

Теперь запускаем ее (Alt+F2 → padevchooser), щёлкаем на иконку в трее, выбираем пункт "Preferences…", отмечаем флажок "Start applet on session login". Теперь после выбора нужного сервера нужно будет перезапустить приложение, с помощью которого воспроизводим звук (например, при воспроизведении музыки ВКонтакте через Chromium после выбора сервера нужно перезапустить браузер). Однако, список серверов еще пуст, перейдем к настройке сервера на том комьютере, на котором мы хотим принимать поток звука.

Настройка сервера

Скорее всего, все это уже установлено в системе по умолчанию, но на всякий случай доставим то, чего не хватает:

sudo apt-get install avahi-daemon pulseaudio pulseaudio-module-zeroconf alsa libasound2-plugins

Группа audio тоже, наверняка, уже присутствует в системе, создадим ее, если это не так:

sudo groupadd audio

И добавим себя в эту группу:

sudo gpasswd -a user audio

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

sudo gpasswd -a user pulse-access

Теперь поправим конфигурационный файл pulseaudio:

sudo nano /etc/pulse/default.pa

Раскомментируем следующие строки, добавив к ним параметры загрузки модуля module-native-protocol-tcp, чтобы принимать звуковой поток с нескольких IP-адресов:

### Network access (may be configured with paprefs, so leave this commented
### here if you plan to use paprefs)
load-module module-esound-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.101
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.101
load-module module-zeroconf-publish

Здесь 192.168.0.101 — это IP-адрес клиента (второго компьютера в сети), с которого будем выводить звук. Можно также указать несколько адресов.

Теперь нужно перезагрузить сервер. Если все настроили правильно, то наш сервер должен появится в PulseAudio Device Chooser у клиента.

Запустить аудиосервер можно командой

pulseaudio -D

Остановить можно так:

pulseaudio -k

Примечание

Способ не претендует на звание лучшего, я бы даже сказал, что он немного ректальный, т.к. существует у него и несколько неприятных сторон:

  • при плохом (или пропадающем) сигнале Wi-Fi будет прерываться и воспроизведение;
  • при старте системы, скорее всего, сначала нужно будет выбрать сервер, т.к. если сначала запустится апплет выбора сервера, а потом уже произойдет соединение с Wi-Fi роутером, то сервер собьется на Default (по умолчанию);
  • регулировать громкость выходного потока с помощью регулировки основной громкости на втором компьютере (клиенте) не получится, т.к. это будет регулировать только громкость звука на динамике второго же компьютера, но я предполагаю, что для этого можно повесить регулировку уровня громкости самого pulseaudio на какие-нибудь горячие клавиши.

Однако, плюс этого способа в отличие от управления по ssh заключается в том, что мы видим визуально, какую именно музыку мы проигрываем и какую можем проиграть.

P.S. Способ подойдет не только для Wi-Fi, а для любой локальной сети (LAN), весь вопрос в его актуальности для проводного соединения.

Комментарии

Аватар пользователя Гость

Лень - двигатель прогресса))

Добавить комментарий