Как включить трансляцию аудио в Linux

Трансляция аудио – или потоковая передача аудио – позволяет воспроизводить звук, который играет на одном устройстве, на другом. Это может быть как живое аудио, так и файлы или даже ввод с микрофона. У многих технологических гигантов есть свои версии трансляции аудио. У Apple есть AirPlay, а у Google – Chromecast. Для Linux существует множество различных методов трансляции аудио благодаря тому, что он является открытым исходным кодом.
Содержание
- Технический взгляд
- Что вам нужно для трансляции аудио
- Как включить трансляцию аудио
- Часто задаваемые вопросы
Также читайте: Как транслировать аудио с Linux на Chromecast и Google Home
Технический взгляд
Хотя разные производители используют немного разные протоколы, почти вся трансляция аудио использует пиринговые (P2P) сети. P2P приобрел довольно хорошую репутацию за свою связь с торрентами, но метод сетевой передачи не так уж печально известен.
По сути, P2P означает, что как ваше устройство, так и устройство, к которому вы подключены, имеют общие права на доступ к данным – оба могут отправлять и получать данные по своему усмотрению. Для целей трансляции аудио отправитель преобразует аудиоданные в двоичный формат, а получатель преобразует их обратно в аудиоданные. Сжатие, битрейт и буферизация также играют роль в этом процессе, но это другая тема, которую мы сейчас не будем обсуждать.
Что вам нужно для трансляции аудио
Это основные приложения, которые мы используем для трансляции аудио. Существуют и другие методы, требующие больше установки, но это основные, которые вы будете использовать для взаимодействия с Pulseaudio.
Настройки Pulseaudio
Paprefs (настройки pulseaudio) – отличный способ доступа ко всем модулям pulseaudio. Обычно для их реализации нужно просматривать документацию и пользоваться терминалом, но удобный графический интерфейс значительно упрощает этот процесс. Установите Paprefs с помощью следующей команды:
sudo apt install paprefsПроблема с Paprefs заключается в том, что он использует имя папки по умолчанию для Pulseaudio. Когда вы пытаетесь активировать или установить модули через него, он перенаправляет вас в эту папку по умолчанию. Эта папка не будет существовать, если Pulseaudio был обновлен.
Чтобы решить эту проблему, создайте символьную ссылку, которая направляет paprefs в правильную папку, как на приведенном ниже примере.
Фактическая папка – это “pulse-15.99.1+dfsg1.” Символьная ссылка – это “pulse-13.99.” Paprefs будет регистрировать её как таковую, но она указывает на фактическую папку, а не является новой. Чтобы создать символьную ссылку, терминальная команда выглядит следующим образом:
sudo ln -s '/usr/lib/pulse-15.99.1+dfsg1' '/usr/lib/pulse-15.99'Также читайте: Как улучшить звук на вашем Linux ПК с помощью PulseEffects
Управление звуком Pulseaudio
Это приложение позволяет вам взаимодействовать с выходами и мониторами pulseaudio. Это не только поможет вам увидеть, воспроизводится ли звук там, где вы хотите, но визуальный интерфейс всегда полезен при работе с несколькими выходами и компьютерами.
Следующая команда в терминале установит Pavucontrol.
sudo apt install pavucontrolКак включить трансляцию аудио
Как и во всем, что связано с Linux, включение трансляции аудио в Linux может варьироваться от простого до крайне сложного. Мое тестирование и методология ориентированы на Ubuntu, но если вы используете Arch или любую другую дистрибуцию, процесс должен быть похожим.
RTP аудиотрансляция
Использование RTP (протокол реального времени) – это самый простой метод, который я нашел при тестировании. Здесь мы используем Pulseaudio.
- Перейдите на вкладку Multicast/RTP в Paprefs и отметьте флажки “Включить приемник Multicast/RTP” и “Включить отправитель Multicast/RTP” на обоих устройствах. Вы можете выбрать включить только одно, но я хочу иметь возможность отправлять и принимать с обоих устройств, поэтому я включаю оба.

- Вы можете либо создать отдельный выход, либо передать звук непосредственно с ваших динамиков на другое устройство. Отдельный выход позволит вам контролировать громкость и формат аудио, которое вы отправляете. Вы должны увидеть поток аудио-монитора с другого устройства в разделе входных устройств Pavucontrol.
- Если вы больше любите терминал, вы также можете добавить следующие модули в файл “default.pa” в “/etc/pulse.” Эти модули выполняют ту же функцию, что и активация приемника и отправителя в Paprefs.
load-module module-null-sink sink_name=rtp
load-module module-rtp-send source=rtp.monitor
set-default-sink rtp
load-module module-rtp-recvВам может потребоваться изменить права файла default.pa с помощью chmod, если вы выберете делать это вручную.
Также читайте: Как исправить проблему с невозможностью вводить текст в терминале в Linux
Прямая аудиотрансляция
Добавьте следующие строки в файл “/etc/pulse/default.pa” на обоих компьютерах. Эти модули необходимы для аутентификации между сервером и клиентом.
load-module module-esound-protocol-tcp auth-anonymous=1
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0/24Кроме того, установите параметр default-server в файле “/etc/pulse/client.conf”. Это может быть либо IP-адрес, либо имя хоста (имя ПК) сервера.
Аудиотрансляция с Windows на Linux
Если у вас есть компьютер с Windows и вы хотите транслировать на устройство Linux, Pulseaudio не может самостоятельно надежно транслировать с Linux на Windows или наоборот. Scream – это один из немногих альтернативных вариантов, который позволит вам передавать звук с Windows на Linux. Обратите внимание, что этот метод не тестировался на Windows 11.
Установить его так же просто, как загрузить приложение для Windows 10 по ссылке на Github и Linux-приемник из репозитория. Следующие команды для терминала установят приемник и также доступны по ссылке для приемников.
# Redhat, CentOS и т.д.
sudo yum install pulseaudio-libs-devel
# Debian, Ubuntu и т.д.
sudo apt-get install libpulse-devЕсли вы хотите обойтись без использования Pulseaudio, Jack предлагает безотказный метод потоковой передачи аудио с Windows на Linux. Этот метод включает использование моста ASIO, который соединяет JACK с аудиовыходом на компьютере с Windows.
Установите JACK на ваши компьютеры с Linux и Windows. В Windows вы можете загрузить и установить его по следующей ссылке. Для Linux вам нужно будет установить его через менеджер пакетов. В моем случае я использовал apt и следующую команду:
sudo apt install jackdВам также необходимо установить ASIO Bridge на вашу систему Windows. После завершения установок выполните следующие команды из командной строки Windows:
regsvr32 32bits\JackRouter.dll
regsvr32 64bits\JackRouter.dllНа вашем компьютере с Linux введите jack_load netmanager в терминале или настройте его на автоматическую активацию с помощью qjackctl (Cadence и Catia также являются отличными патчбоксами) с использованием той же команды. Перейдите на вкладку Опции, отметьте флажок “Выполнить скрипт после запуска” и добавьте команду.

Последние шаги – запустить JACK NetDriver на вашем устройстве Windows. Или введите jackd -R -d net в командной строке, запустите ASIO Bridge и установите устройство ASIO на JackRouter. Вы должны увидеть имя хоста Windows в qjackctl или в любом другом патчбоксе, который вы выбрали. Иногда этот шаг требует перезапуска qjackctl, поэтому не переживайте, если это не сработает с первого раза.
Также читайте: Как транскодировать файлы FLAC с помощью flac2all в Linux
Часто задаваемые вопросы
Есть ли какие-либо альтернативные приложения, которые я могу использовать для трансляции аудио в Linux?
Существует множество медиа-серверов и приложений для трансляции в Linux. Было бы невозможно объяснить и пройтись по всем из них, но некоторые из них – Mkchromecast и Soundwire.
Сделает ли включение трансляции аудио мой ПК уязвимым для кибератаки?
Одной из проблем при работе с чем-либо, связанным с сетью, является безопасность. Хотя некоторые методы трансляции аудио могут сделать ваш компьютер уязвимым, вряд ли существует реальная угроза – пока вы работаете в пределах вашей закрытой локальной сети.
Могу ли я использовать эти методы для трансляции аудио на свой телевизор?
К сожалению, без внешнего приложения, такого как VLC или mkchromecast, вы не можете отправить звук непосредственно на ваш телевизор с использованием RTP или прямого соединения. Однако большинство умных телевизоров позволят вам устанавливать приложения и/или получать и отправлять звук с другого устройства.