Я пытаюсь настроить приемник PulseAudio на моем Raspberry Pi, чтобы передавать туда все системные звуки с моего компьютера. Каков наилучший способ сделать это?
Например, можно ли смотреть фильмы или задержка слишком высока? Я попробовал это некоторое время назад, используя gstreamer, но с задержкой около 2 секунд, что бесполезно для моих требований.
Ответы:
В официальной инструкции по созданию «прямой связи» в сети , мы надеемся , просто работа для большинства людей, но это , кажется , PulseAudio и я не ладят , что хорошо: у меня ушло часа . [Помимо «прямого соединения», вы также можете использовать «туннельный» метод, описанный ниже, но я рекомендую сначала прочитать это.]
Теперь у меня есть (Fedora 17) рабочий стол потокового звука на пи. Я
/etc/pulse
свернул файлы конфигурации с обеих сторон. На стороне рабочего стола:/etc/pulse/client.conf
Локальный адрес моего пи с портом по умолчанию. Но вот что-то, что потом меня смутило на некоторое время - с указанным сервером pulseaudio даже не запустится:
Он будет работать на переднем плане (возможно, потому что тогда он не читает pulse-client.conf?). Однако , как выясняется, вам вообще не нужно запускать его на стороне рабочего стола (отправляющего) , что не прописано в pulseaudio docs. Используя
lsof -i -P
это, кажется, что плагины более низкого уровня для различных медиаплееров делают работу.Итак, эта строка «client.conf» - это на самом деле все, что вам нужно на настольном компьютере / клиентской стороне, если все, что вы собираетесь сделать, это использовать сеть (но см. «Еще больше сложностей» ниже).
Хотя демон pulseaudio (на принимающей / серверной стороне) можно запускать как системную службу, разработчики Pulse рекомендуют его , а на самом деле сценарий pi только вызывает предупреждение: вам все равно нужно запустить это сам. Fedora даже не включает запись службы загрузки systemd для него.
Следовательно, на стороне pi вы должны явно запустить и остановить процесс pulseaudio server, настроенный следующим образом:
/etc/pulse/daemon.conf
Вы можете использовать -1 для
exit-idle-time
сохранения работы демона на неопределенный срок. Остерегайтесь, это секунды, и по умолчанию это 20 (это означает, что он будет «загадочно» умирать, если вы не установите это)./etc/pulse/default.pa
Поскольку это сетевое приложение, запускать его с правами root не рекомендуется. Тем не менее, как уже упоминалось
man pulseaudio
, хорошей идеей является «сдать в аренду» процесс, чтобы придать ему более высокий приоритет. Вы можете сделать это вручную с помощьюnice
, но pulseaudio сделает это автоматически для пользователя root или членовpulse-rt
группы, если исполняемый файл имеет значение «setuid», то есть он может использовать некоторые привилегии пользователя root, а затем переключиться на правильный непривилегированный uid (ping
иpasswd
Также нужно сделать это). Итак (как root или sudo):Не существует
pulse-rt
группы, созданной при установке pulseaudio на raspbian, так что тогда:Это даст вам подсказку типа 1003. Добавьте (например) пользователя pi в эту группу:
Но на raspbian вы все равно не сможете переиграть как пи. Для этого добавьте в
/etc/security/limits.conf
:Вы должны на самом деле запустить вход в систему, прежде чем эти изменения вступят в силу; если вы используете ssh с пи, просто используйте
login
. Теперь вы можете запустить pulseaudio, и он получит само -11, что, вероятно, имеет более высокий приоритет, чем большинство других процессов (посмотрите на значение NICE вtop
).Во время воспроизведения звука, передаваемого по сети, pulseaudio on the pi использует около 10% процессорного времени и тривиальный объем памяти. :) Он и мой рабочий стол находятся в проводной локальной сети; Импульсные потоки исходных данных в pcm (я полагаю), поэтому использование полосы пропускания соответствует частоте дискретизации источника, 1 кБ / с и выше. К сожалению, при просмотре видео наблюдается заметная задержка звука.
Еще больше осложнений ...
К сожалению, ни одно из различных звуковых приложений с моего компьютера не работало сразу;
mpg123
не будет работать вообще. Для этого на fedora вам понадобитсяmpg123-plugins-pulseaudio
пакет. Для флэш-содержимого в браузере (например, youtude) вам нужноalsa-plugins-pulseaudio
(это то, что на самом деле подключается к удаленному серверу). Другие дистрибутивы должны иметь похожие пакеты. Если вы ранее использовали pulaudio (у меня не было), возможно, они уже установлены.Настольные звонки KDE также не работали. Эту проблему сложнее решить, поскольку она ищет локальный сервер pulseaudio и, как описано, использование прямого соединения означает, что ни один сервер не может быть запущен локально. Обходным путем является использование метода «туннель».
модуль-туннель раковина
Это другой способ, упомянутый в pulaudio docs. В этом случае у вас есть сервер, работающий с обеих сторон и один раздающий другой. Для этого закомментируйте «default-server»
/etc/client.conf
и добавьте локальный/etc/default.pa
файл, содержащий:Если вы не
sink_name
вставите, pulseaudio не запустится.sink
Ссылается на имя раковины на стороне пи, который затем также нуждается именем; добавить соответствующийsink_name
кmodule-alsa-sink
линии вdefault.pa
там:Запустите сервер с обеих сторон и предварительно ... вроде. В то время как все, включая звуковые сигналы KDE, теперь переносились, воспроизведение флэш-памяти в браузере сильно зависало. Тем не менее, в другой среде рабочего стола (на самом деле, просто оконный менеджер, fvwm) это было хорошо.
Мне нравится KDE, но я могу жить без звуков, поэтому сейчас я буду придерживаться прямой связи.
Исправление проблем
Если у вас есть проблемы, использование
pulseaudio -vvvv --log-level=debug
на пи дает много отладочных сообщений. Первоначально, когда я не мог получить звук на пи, это сообщало о проблеме, «связанной с ошибкой в драйвере ALSA bcm2835», которая казалась мне странной, так как звук был хорош только с alsa, и я уверен, что есть программное обеспечение пи, которое зависит от на pulseaudio -apt-get remove pulseaudio
и переустановка,apt-get install pulseaudio
казалось, исправила это ... Не то решение, которое мне нравится видеть, но, эй, по крайней мере, теперь я могу слушать tish без необходимости подключать колонки в каждую коробку. В основном.источник