Как запустить/настроить PulseAudio удаленно с помощью SSH?

Как запустить/настроить PulseAudio удаленно с помощью SSH?

У меня есть удаленная машина, к которой я могу подключиться по ssh. На удаленной машине есть программа, которая использует Pulse Audio для получения входных данных с USB-микрофона, подключенного к удаленной машине. Эта настройка отлично работает при локальном использовании, т. е. я могу получать входные данные с Pulse Audio при локальном подключении.

По ssh получаю ошибку:

ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: Connection refused
ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: Connection refused

Аналогично, когда я пытаюсь открыть pavucontrolна удаленной машине через ssh -X, я получаю сообщение:

Не удалось подключиться к PulseAudio. ... В данном случае это, скорее всего, связано с неправильной настройкой PULSE_SERVER в свойствах корневого окна Environment/X11 или default-server в client.conf.

pulseaudio --start
N: [pulseaudio] main.c: User-configured server at {30ab51874e4a0ca492830f1400000007}unix:/home/user2/.pulse/30ab51874e4a0ca492830f1400000007-runtime/native, refusing to start/autospawn.

Попытка запустить импульсный звук с помощью x11:start-pulseaudio-x11

Connection failure: Connection refused
pa_context_connect() failed: Connection refused

pulseaudio --checkвозвращается прямо в командную строку.

Если я попытаюсь получить свойства SSH X, я получу:

user1@remote-pc:~$: xprop -root | grep PULSE
PULSE_COOKIE(STRING) = Some stuff here
PULSE_SERVER(STRING) = "{30ab51874e4a0ca492830f1400000007}unix:/home/user2/.pulse/30ab51874e4a0ca492830f1400000007-runtime/native"
PULSE_SESSION_ID(STRING) = "30ab51874e4a0ca492830f1400000007-1407765989.424751-1424846683"
PULSE_ID(STRING) = "12165@30ab51874e4a0ca492830f1400000007/2040"

Хорошо. Я видел вопросы, связанные с этой проблемой, но в каждом случае спрашивающий хочет передавать звук по сетевому соединению, чего я не хочу делать. Так что мне настроить, PULSE_SERVERчтобы быть?

решение1

Кажется, я решил проблему, запустив

pax11publish -r

Теперь xprop -root | grep PULSEпоказывает:

PULSE_SERVER(STRING) = "{9899a0f46bdae6bbc8e6e8b200000005}unix:/home/user1/.pulse/9899a0f46bdae6bbc8e6e8b200000005-runtime/native"

Видимо, pulseaudio --checkобычно должен перейти в командную строку. Видимо, это означает, что он запущен.

решение2

Поместите это в файл ~/.bashrc на удаленном сервере (если вы используете Bash в качестве оболочки по умолчанию):

if test "$SSH_CLIENT" ; then export PULSE_SERVER=tcp:localhost; fi

или положить

default-server = tcp:localhost

в/etc/pulse/client.confили в файлах с таким же именем в разделепульскаталог в каталоге пользовательских файлов конфигурации, если такие файлы используются. См.https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.htmlдля получения более подробной информации о каталогах.

Связанный контент