Encaminhando áudio como X no SSH

27

Embora seja possível usar aplicativos X remotamente usando a opção -X no ssh, o som está sendo reproduzido apenas no alto-falante da máquina remota. Por exemplo, se eu assistir a um filme no VLC / Totem, apenas o vídeo estará visível e não consigo ouvir o áudio. Existe uma maneira de encaminhar o áudio também? [sem procurar na configuração do Pulse-audio, quero dizer; Como o ssh entende o encaminhamento do X por si só.]

Eu tentei isso apenas no Ubuntu (em várias versões do Ubuntu, das 9.10 às 10.10), se isso ajudar.

Akilan
fonte

Respostas:

30

Primeiro, execute paprefs, vá para o Servidor de rede e marque Habilitar acesso à rede para dispositivos de som locais . Isso carregará "module-native-protocol-tcp" no PulseAudio.

Agora você pode acessar o servidor PulseAudio de várias maneiras:

Encaminhar manualmente a conexão TCP pelo SSH

  1. Use pax11publishpara descobrir a porta do ouvinte do PulseAudio (geralmente 4713);
  2. Conecte-se a outro computador com ssh -R 24713:localhost:4713(a porta remota '24713' foi escolhida arbitrariamente);
  3. Copie seu cookie de autenticação (~ / .config / pulse / cookie) para esse computador;
  4. Finalmente, execute export PULSE_SERVER="tcp:localhost:24713"e teste com pactl info.

Use a conexão direta automática com a descoberta baseada em X11

Sempre que você faz o SSH com o encaminhamento X11 ativado, os programas PulseAudio usam o X11 para descobrir seu servidor de som (use pax11publishou xprop -root PULSE_SERVERveja por si mesmo). Eles tentarão estabelecer uma conexão direta (não SSH, não criptografada) ao seu computador para transmissão de áudio.

Use a conexão direta automática com a descoberta DNS-SD

Se você tiver o avahi-daemon e o pulseaudio-zeroconf instalados, poderá ativar "Permitir que outras máquinas descubram dispositivos locais". Isso carregará "module-zeroconf-publish".

Outros computadores, com a opção "Tornar dispositivos de rede detectáveis ​​disponíveis localmente" ativados (module-zeroconf-discover), listarão automaticamente as saídas (sumidouros) que o seu computador exporta. Eles usarão uma conexão direta (não criptografada) para transmissão de áudio.

Este método também requer que ~ / .config / pulse / cookie sejam idênticos entre os hosts.

gravidade
fonte
2
Onde ~/.pulse_cookieexiste? No controle remoto ou localmente?
HSchmale
2
Ambos. Ele é gerado pelo daemon pulseaudio e, em seguida, lido conectando clientes (como uma senha), portanto, você deseja copiá-lo do servidor para os clientes. (Note-se que o caminho já foi alterado para ~/.config/pulse/cookie, se um não funciona, tente o outro.)
grawity
2
Observe que após alterar as configurações nos paprefs, você deve reiniciar manualmente pelo menos o áudio do pulsea. No meu caso, depois de passar horas tentando descobrir o que estava errado, eu apenas reiniciei e tudo funcionou :).
crazy2be
Isso funcionou para mim, obrigado. Usando um raspberry pi remoto com rtl-sdr, portanto, desejo obter áudio sobre o funcionamento do ssh.
Paul M