Inoltro audio come X in SSH


27

Sebbene sia possibile utilizzare le applicazioni X in remoto utilizzando l'interruttore -X in ssh, il suono viene riprodotto solo nell'altoparlante della macchina remota. Ad esempio, se visualizzo un film in VLC / Totem, è visibile solo il video e non riesco a sentire l'audio. C'è un modo per inoltrare anche l'audio? [senza scavare nella configurazione di Pulse-audio, intendo; Ad esempio come ssh capisce l'inoltro X da solo.]

Ho provato questo solo in Ubuntu (in varie versioni di Ubuntu dalla 9.10 alla 10.10), se questo aiuta.

Risposte:


30

Innanzitutto, esegui paprefs, vai a Network Server e seleziona Abilita accesso di rete ai dispositivi audio locali . Questo caricherà "module-native-protocol-tcp" in PulseAudio.

Ora puoi accedere al server PulseAudio in diversi modi:

Inoltra manualmente la connessione TCP su SSH

  1. Utilizzare pax11publishper scoprire la porta del listener di PulseAudio (in genere 4713);
  2. Connettersi a un altro computer con ssh -R 24713:localhost:4713(la porta remota '24713' è stata scelta arbitrariamente);
  3. Copia il tuo cookie di autenticazione (~ / .config / pulse / cookie) su quel computer;
  4. Finalmente esegui export PULSE_SERVER="tcp:localhost:24713"e prova con pactl info.

Utilizzare la connessione diretta automatica con il rilevamento basato su X11

Ogni volta che SSH con l'inoltro X11 abilitato, i programmi PulseAudio usano X11 per scoprire il tuo server audio (usa pax11publisho xprop -root PULSE_SERVERper vedere di persona). Proveranno a stabilire un diretto (non SSH, non crittografata) al computer per lo streaming audio.

Utilizzare la connessione diretta automatica con il rilevamento DNS-SD

Se hai installato avahi-daemon e pulseaudio-zeroconf, puoi attivare "Permetti ad altre macchine di scoprire dispositivi locali". Questo caricherà "module-zeroconf-publishing".

Altri computer, con l'opzione "Rendi i dispositivi di rete rilevabili disponibili localmente" abilitati (module-zeroconf-discover), elencheranno automaticamente gli output (sink) che il tuo computer esporta. Utilizzeranno una connessione diretta (non crittografata) per lo streaming audio.

Questo metodo richiede anche che ~ / .config / pulse / cookie sia identico tra gli host.


2
Dove ~/.pulse_cookieesiste? Sul telecomando o localmente?
HSchmale,

2
Tutti e due. È generato dal demone pulseaudio, quindi letto collegando i client (come una password), quindi ti consigliamo di copiarlo dal server ai client. (Nota che da allora il percorso è stato cambiato ~/.config/pulse/cookie; se uno non funziona, prova l'altro.)
Grawity

2
Si noti che dopo aver modificato le impostazioni in paprefs, è necessario riavviare manualmente almeno pulseaudio. Nel mio caso, dopo aver passato ore a cercare di capire cosa non andava, ho appena riavviato e poi tutto ha funzionato :).
crazy2be,

Questo ha funzionato per me, grazie. Uso di un raspberry pi remoto con rtl-sdr, quindi voler ottenere l'audio su ssh funzionante.
Paul M,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.