Como iniciar/configurar o pulseaudio remotamente com ssh?

Como iniciar/configurar o pulseaudio remotamente com ssh?

Eu tenho uma máquina remota na qual posso fazer ssh. Na máquina remota há um programa que usa áudio pulsado para obter entrada de um microfone USB conectado à máquina remota. Esta configuração funciona bem quando operada localmente, ou seja, posso obter entrada de áudio pulsado quando conectado localmente.

Por ssh, recebo o erro:

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

Da mesma forma, quando tento abrir pavucontrolna máquina remota via ssh -X, recebo a mensagem:

A conexão com o PulseAudio falhou. ... Neste caso, é provável que PULSE_SERVER nas Propriedades da janela raiz Environment/X11 ou servidor padrão em client.conf esteja configurado incorretamente.

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

Tentando iniciar o áudio pulsado com x11:start-pulseaudio-x11

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

pulseaudio --checkretorna direto para o prompt de comando.

Se eu tentar obter as propriedades ssh X, recebo:

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"

OK. Já vi perguntas relacionadas a esse problema, mas em cada caso, quem fez a pergunta deseja transmitir som através de uma conexão de rede, o que eu >não< quero fazer. Então, o que eu configuro PULSE_SERVERpara ser?

Responder1

Parece que resolvi o problema executando

pax11publish -r

Agora, xprop -root | grep PULSEmostra:

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

Aparentemente, pulseaudio --checknormalmente deveria ir para o prompt de comando. Aparentemente, isso indica que está em execução.

Responder2

Coloque isso em seu ~/.bashrc no servidor remoto (se você usar o Bash como shell padrão):

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

ou colocar

default-server = tcp:localhost

em/etc/pulse/client.confou nos arquivos com o mesmo nome empulsodiretório no diretório do arquivo de configuração específico do usuário se tais arquivos forem usados. Verhttps://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.htmlpara obter mais informações sobre os diretórios.

informação relacionada