¿Cómo iniciar/configurar pulseaudio de forma remota con ssh?

¿Cómo iniciar/configurar pulseaudio de forma remota con ssh?

Tengo una máquina remota a la que puedo enviar ssh. En la máquina remota hay un programa que utiliza audio pulsado para recibir entrada desde un micrófono USB conectado a la máquina remota. Esta configuración funciona bien cuando se opera localmente, es decir, puedo recibir entradas de audio por pulsos cuando estoy conectado localmente.

A través de ssh, recibo el error:

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

Del mismo modo, cuando intento abrir pavucontrolen la máquina remota a través de ssh -X, aparece el mensaje:

Error de conexión a PulseAudio. ... En este caso, esto probablemente se debe a que PULSE_SERVER en Entorno/Propiedades de la ventana raíz X11 o el servidor predeterminado en client.conf está mal configurado.

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

Intentando iniciar el audio por pulsos con x11:start-pulseaudio-x11

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

pulseaudio --checkregresa directamente al símbolo del sistema.

Si intento obtener las propiedades de ssh X, obtengo:

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"

De acuerdo. He visto preguntas relacionadas con este tema, pero en cada caso, el autor de la pregunta quiere transmitir sonido a través de una conexión de red, lo cual >no< quiero hacer. Entonces, ¿qué configuro PULSE_SERVERpara que sea?

Respuesta1

Parece que he resuelto el problema ejecutando

pax11publish -r

Ahora, xprop -root | grep PULSEmuestra:

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

Aparentemente, pulseaudio --checknormalmente debería ir al símbolo del sistema. Aparentemente esto indica que se está ejecutando.

Respuesta2

Coloque esto en su ~/.bashrc en el servidor remoto (si usa Bash como shell predeterminado):

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

o poner

default-server = tcp:localhost

en/etc/pulse/client.confo en los archivos con el mismo nombre bajolegumbresdirectorio en el directorio de archivos de configuración específico del usuario si se utilizan dichos archivos. Verhttps://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.htmlpara obtener más información sobre los directorios.

información relacionada