cucullus |
|
Темы:
268
Сообщения:
3562
Участник с: 06 июня 2007
|
Актуально на январь 2021, pulseaudio 14.2 Дано В локалке имеется машина к которой подключены колонки, через которые с помощью pulseaudio (далее PA) по сети хочется воспроизводить звуки с других машин. Машина-колонка может быть в любом состоянии: с залогинеными пользователями, без пользователей или в headless-режиме. С удивлением обнаружил отсутствие актуальных полноценных описаний процесса, поэтому пришлось разбираться самому... Настройка сервера Т.к. на машине-колонке (сервере) залогиненного пользователя может не быть, нужно запустить PA в общесистемном режиме. Дальнейшие манипуляции происходят на этой машине. Создаём пользователя pulse (под ним будет работать PA, иначе не запустится) и добавляем его в группу audio (для доступа к alsa): Uid 130 зарезервирован в арче за PA.Создаём группу pulse-access (нужна для PA, ругается в логах): Gid 131 из той же таблицы.Проверяем шипение через alsa: Если звука нет, то смотрим alsamixer (от юзера pulse), настраиваем порядок звуковых карт, разбираемся с опциями модулей ядра (см. документацию по alsa)...Создаём системный сервис для PA /etc/systemd/system/pulseaudio.service (найдено на просторах интернета, опции запуска могут быть избыточными): Включаем, запускаем. Если настройка выполняется на самом сервере, то может потребоваться прибитие пользовательского экземпляра PA и запрет автозапуска оного. Я всё делал удалённо.Запускаем pulsemixer (от юзера pulse!) или другую крутилку ручек для PA и настраиваем громкости. Окончательно убеждаемся, что общесистемный PA работает:
Настраиваем сетевой доступ к PA и анонс по mDNS (опционально, потребуется avahi и pulseaudio-zeroconf). Дописываем в /etc/pulse/system.pa разрешённые для подключения ip адреса: Можно без адресов, но тогда надо заморочиться кукесами, см. документацию по PA.Перезапускаем PA. Сервер готов. Настройка клиента На заинтересованных в удалённом воспроизведении машинах добавляем в /etc/pulse/default.pa (это если PA там запускается в пользовательском режиме, а если тоже в системном, то в system.pa): Тут тоже нужен avahi и pulseaudio-zeroconf.Есть вариант без mDNS/zeroconf. В default.pa на клиентских машинах пишем что-то вроде: Подробнее в соответствующей документации.На машине-клиенте выставляем в качестве вывода наш сервер (через любой микшер): называется как-то так: bla-bla-bla on pulse@host. Всё. В некоторых случаях "bla-bla-bla" в названии может быть весьма унылым, например: "Family 17h (Models 10h-1fh) HD Audio Controller Analog Stereo". Переименуем выход. На клиентской машине выполним: Видим, что в данном случае имеем два синка локальный и удалённый (начинается с "tunnel").На сервере добавим в /etc/pulse/system.pa: После перезапуска PA получаем заданное имя.Настройка роутера Ну а теперь представим, что в локалке есть wifi-роутер и мы хотим, чтобы устройства с его беспроводной (да и проводной тоже) сети тоже могли транслировать звук. Проблема в том, что автообнаружение через mDNS работает только до гейта (коим в wifi-сети является роутер). Чтобы пробросить mDNS через роутер опять пригодится avahi. Ставим avahi на роутере (на нём у вас OpenWRT прошито, не так ли? ;))) ) В /etc/avahi-daemon.conf раскомментируем/исправляем: Перезапускаем avahi.Итого Работают даже достаточно вычурные сценарии: телефон подключённый через блютуз к ноутбуку, который подлючён через роутер к локалке, играет на колонках на сервере. Единственно, попытка подключить на лету (на ноуте играла музыка) вызвала падение PA на ноуте, но после перезапуска PA и переподключения телефона всё заработало. Параллельно воспроизводится звук с телефона и ноута. Неравнодушные читатели надоумили запустить на ноуте по вайфаю видео и транслировать звук опять же по вайфаю на сервер, намекая на чрезмерное использование пропускной способности беспроводной сети. Запускалось 1080@30 видео с ютюба, роутер TP-Link TL-WR842N. Не сразу, но заработало. Пришлось попереключать туда-сюда выходы. А спустя какое-то время работало даже переключение "на лету". Не сказать, что идеально, но работает. Ноут в беспроводной сети был один, эфир почти свободен. Ясно, что в более сложных условиях этот сценарий может и не заработать. Ошибки и т.п. Иногда при старте воспроизведения звук заикается на 0.5 - 2 сек. Попытка закомментировать модуль засыпания к изменениям не привела. Эффект имеется на ноуте подключенном через wifi. При воспроизведении со стационарного компьютера через гигабитный провод заикания отсутствуют.Попытка вывести разные приложения на разные выходы (плеер на сервер, а браузер на колонки ноута) привела к жёстким заиканиям на сервере каждые 2 секунды. Пользоваться такой конфигурацией практически невозможно. Нагрузки на процессор нет. В логах сервера: Возможно, это из-за использования мной pulseeffects.
такие дела.
|
vs220 |
|
Темы:
25
Сообщения:
8524
Участник с: 16 августа 2009
|
А когда то mpd хватало :) |
cucullus |
|
Темы:
268
Сообщения:
3562
Участник с: 06 июня 2007
|
vs220Ждал это коммента ;) mpd хватало тем, кто воспроизводил только музыку и только через mpd. А жизнь, как показало последнее время, гораздо богаче таких нишевых занятий.
такие дела.
|
vs220 |
|
Темы:
25
Сообщения:
8524
Участник с: 16 августа 2009
|
А если не секрет для чего используется? |
cucullus |
|
Темы:
268
Сообщения:
3562
Участник с: 06 июня 2007
|
vs220, ну поскольку только что настроил, то пока для музыки ;) А вообще для всякой лабораторной мультимедиа деятельности. Презентации со звуком, групповое участие в дистанционных семинарах и т.п. Раз есть муз.центр с хорошими колонками, то чего не воспользоваться.
такие дела.
|
jim945 |
|
Темы:
9
Сообщения:
3194
Участник с: 25 января 2010
|
Эххх. Заморачивался этим лет, наверное, восемь назад. Пробовал видео смотреть? Как там дела с задержками сейчас?
Lupus pilum mutat, non mentem.
|
jim945 |
|
Темы:
9
Сообщения:
3194
Участник с: 25 января 2010
|
Особенно по wifi
Lupus pilum mutat, non mentem.
|
cucullus |
|
Темы:
268
Сообщения:
3562
Участник с: 06 июня 2007
|
jim945да как бы даже iptv по вайфаю 8 лет назад прекрасно работало. никаких проблем. думаю, задержки пульсы как-то связаны со стартом соединения... в общем надо выяснять. да и так в общем не слишком напрягает.
такие дела.
|
indeviral |
|
Темы:
39
Сообщения:
3204
Участник с: 10 августа 2013
|
Автор без обид, но написанного на wiki хватает за глаза, а про роутер и пользователей это какая-то отсебятина... (пользуюсь не один год, если что) При подключении лучше использовать какой-нибудь скриптик который дёрнет pulse на клиенте, а то не удобно пользоваться. p.s. качество сильно зависит от загрузки сети даже на честных 300mbit. Вот если бы кто-нибудь написал как это кодирнуть во что-нибудь вменяемое, а потом на сервере принять, цены бы ему не было...
Ошибки в тексте-неповторимый стиль автора©
|
jim945 |
|
Темы:
9
Сообщения:
3194
Участник с: 25 января 2010
|
cucullusПричём здесь iptv? Я имел ввиду запустить фильм. По поводу было всё нормально. Но с WiFi постоянные проблемы с рандомной задержкой, обрывами и прочим прелестями. И, как выше заметили, просто забивает почти весь канал. С тех пор у меня всё проще. Во все колонки встроил Bluetooth приёмники :)
Lupus pilum mutat, non mentem.
|