Звук по компьютерной сети

Pulseaudio — звуковой сервер

Было бы очень удобно, если бы дома была распределенная звуковая система, одна пара колонок на всю квартиру, а всякие ПК и ноутбуки могли на нее отправлять свои звуковые потоки, так можно избавится от кучи проводов идущих от ПК, это добавило бы мобильности к ноутбуку, уже не пришлось носить по дому мобильные колонки для ноутбука, т.к зачастую ноутбуки оборудованы отвратительным звуком. А еще можно было бы усложнить и поместить по паре акустических систем в разных комнатах и при переходе между комнатами переключать звук между ними, но как этого достичь? Ответ лежит на поверхности — уже давно в Ubuntu и Debian и других дистрибутивах установлен звуковой сервер Pulseaudio, в его функции заложена такая замечательная возможность передачи звука через локальную сеть.

Что необходимо для звукового сервера?

  • ПК который будет выполнять роль звукового сервера
  • Звуковые карты для каждой акустической системы

В качестве ПК прекрасно подойдет домашний сервер с утановленной ОС Debian.
По умолчанию пакет не идет в минимальной установке Debian, поэтому производим его установку:

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

Pulseaudio — переводим в системный режим

Там находится четыре файла

client.conf — настройки для клиентской части звукового сервера.
daemon.conf — настройки Pulseaudio в режиме службы
default.pa — настройка модулей в режиме пользователя
system.pa — настрока модулей в системном режиме

Читайте также:  Модели сетевого взаимодействия клиент сервер

В звуковом сервере нас интересуют файлы daemon.conf и system.pa

Открыаем файл daemon.conf
#Включаем режим сервиса

#Отключить загрузку модулей пользователем
allow-module-loading = no
#Запретить запросы пользователя
allow-exit = no
cpu-limit = no
#Приоретет поцесса — устанавливаем наивысший
high-priority = yes

В файл system.pa добавляем:

#Загружаем модуль для доступа по сети и настраиваем доступ из локальной сети
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0 / 16
load-module module-zeroconf-publish

запускаем звуковой сервер Pulseaudio, напоминая что настройка ведется из под пользователя root:

Клиенты для Pulseaudio

Проверим проигрывание звука через клиент, в качестве клиента выступает ПК с установленной убунту 16.04
Устанавливаю на клиенте pavucontrol:

pavucontrol

Запускаем pavucontrol из системного меню

В командной строке вводим команду на создание туннеля к звуковому серверу:

pactl load-module module-tunnel-sink-new server =192.168.2.1 sink_name =Remote channels = 2 rate = 44100

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

echo «load-module module-tunnel-sink-new server=192.168.2.1 sink_name=Remote channels=2 rate=44100» >> / etc / pulse / default.pa

Для управления громкостью подключаемся к удаленному серверу

Тут же можно переключать звуковые карты для каждого звукового потока

Теперь нам необходимо создать сервис для pulseaudio
Создаем файл:

Открываем и добавляем строки:

nano / etc / systemd / system / pulseaudio.service

[ Unit ]
Description =PulseAudio Daemon

[ Install ]
WantedBy =multi-user.target

[ Service ]
Type =simple
PrivateTmp = true
ExecStart = / usr / bin / pulseaudio —system

Перегружаем службы, добавляем в автозагрузку и запускаем:

service pulseaudio status
● pulseaudio.service — PulseAudio Daemon
Loaded: loaded ( / etc / systemd / system / pulseaudio.service; enabled; vendor preset: enabled )
Active: active ( running ) since Mon 2018 -03- 12 21 : 59 : 48 MSK; 2s ago
Main PID: 1807 ( pulseaudio )
Tasks: 4 ( limit: 4915 )
CGroup: / system.slice / pulseaudio.service
└─ 1807 / usr / bin / pulseaudio —system —realtime

мар 12 21 : 59 : 48 router pulseaudio [ 1807 ] : N: [ pulseaudio ] main.c: Running in system mode, forcibly disabling SHM mode.
мар 12 21 : 59 : 48 router pulseaudio [ 1807 ] : N: [ pulseaudio ] main.c: Running in system mode, forcibly disabling exit idle time.
мар 12 21 : 59 : 48 router pulseaudio [ 1807 ] : W: [ pulseaudio ] main.c: OK, so you are running PA in system mode. Please make sure that you actuall
мар 12 21 : 59 : 48 router pulseaudio [ 1807 ] : W: [ pulseaudio ] main.c: Please read http: // www.freedesktop.org / wiki / Software / PulseAudio / Documentati

Читайте также:  Оптимизация сетевых моделей кратко

При каждом перезапуске сервера туннель пропадает на клиенте, поэтому перезапускаем pulseaudio на клиенте, должен появиться туннель в списке устройств в pavucontrol

Start service

В процессе настройки столкнулся с особенностью — по умолчанию после перезагрузки звук отключен.
Проблема решилась установки пакета alsa-utils и сохранения настроек с помощью команды alsactl store

alsamixer

Управлять мастер-уровнем можно с помощью команды alsamixer

P.S. После каждой перезагрузки сервера необходимо перезапускать Pulseaudio на клиенте или просто отправлять его в перезагрузку.

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

Для отправки комментария вам необходимо авторизоваться.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Основная панель

Авторизация

Рубрики

Поиск

Свежие записи

Источник

«Синхронизируй это»: компактный обзор примечательных решений и протоколов для передачи звука по Ethernet

На неделе один из участников Hacker News запустил тематический тред с целью узнать, как «связать» компьютер, колонки и другую акустику в единую звуковую систему.

Мы решили рассмотреть несколько стандартов, которые используют музыканты в студиях, а также open source решения, доступные для развертки любому аудиоману.

Фотография: Jesman fabio. Источник: Unsplash.com

С чем работают профессионалы

Участники обсуждения отметили, что в проф. среде распространены протоколы трансляции аудио по Ethernet. Их разделяют на три категории. Первая подразумевает прямую передачу звука по классическим кабелям Cat 5. Например, к ней относится открытый протокол AES50, который работает с PCM-сигналами. Его поддерживают консоли таких производителей, как Midas и Behringer.

Вторая категория позволяет настроить канал между двумя аудиоустройствами в сети. Свод стандартов — Audio Video Bridging — в той нише разработали в IEEE.

Третья категория — протоколы сетевого уровня. Они позволяют коммутировать десятки устройств одновременно. Одно из распространенных решений такого класса — Dante. Его используют в студиях звукозаписи, офисах (для построения конференц-систем), а также в концертных залах — например, в оперном театре Сиднея. Хотя Dante представляет собой нечто большее, чем просто протокол обмена данными, он также включает драйвера для подключения к аудиоустройствам и DAW и приложения для маршрутизации аудио.

Читайте также:  Построение и обслуживание вычислительных сетей

В этой группе также стоит отметить открытый стандарт Ravenna, который передает трафик по RTP (благодаря этому он может работать с аудио и видео), и AES67, разработанный инженерами из сообщества Audio Engineering Society.

Что можно использовать дома

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

Но в случае с Bluetooth могут возникать сложности со связыванием нескольких акустических систем. Однако есть платформы, которые позволяют настроить мультирум как с проводными, так и беспроводными устройствами.

Фотография: Amin Asbaghipour. Источник: Unsplash.com

Пример такого решения — SoundSync. Это — приложение с открытым исходным для управления парком аудиодевайсов из одного интерфейса. Можно транслировать музыку на колонки, подключённые к любому устройству в сети (поддерживается Windows, MacOS, Linux и Raspberry Pi). Пока что проект находится на ранних этапах разработки, но в будущем автор планирует расширять функциональность — в частности, добавит возможность объединять устройства из нескольких сетей и интеграцию с IoT-девайсами.

Альтернативным решением может быть Snapcast. Это — клиент-серверное приложение, которое можно использовать в паре с MPD или Mopidy. С помощью подобных систем каждый может развернуть у себя дома мультирум-систему.

Что еще почитать в нашем «Мире Hi-Fi» и в нашем блоге на Хабре:

Источник

Оцените статью
Adblock
detector