Audio wie X in SSH weiterleiten

27

Während es möglich ist, X-Anwendungen über die Option -X in ssh remote zu verwenden, wird der Sound nur über den Lautsprecher des Remote-Computers wiedergegeben. Wenn ich zum Beispiel einen Film in VLC / Totem ansehe, ist nur das Video sichtbar und ich kann den Ton nicht hören. Gibt es auch eine Möglichkeit, Audio weiterzuleiten? [ohne die Einstellungen von Pulse-Audio durchzugehen, meine ich; So wie ssh X Forwarding von selbst versteht.]

Ich habe dies nur in Ubuntu (in verschiedenen Ubuntu-Versionen von 9.10 bis 10.10) versucht, wenn das hilft.

Akilan
quelle

Antworten:

30

Zuerst laufen paprefs, gehen Network Server und überprüfen Sie den Netzwerkzugriff auf lokale Sound - Geräte aktivieren . Dadurch wird "module-native-protocol-tcp" in PulseAudio geladen.

Sie können jetzt auf verschiedene Arten auf den PulseAudio-Server zugreifen:

Leiten Sie die TCP-Verbindung manuell über SSH weiter

  1. Verwenden pax11publishSie diese Option, um den PulseAudio-Listener-Port zu ermitteln (normalerweise 4713).
  2. Verbinden Sie sich mit einem anderen Computer ssh -R 24713:localhost:4713(der Remote-Port '24713' wurde willkürlich gewählt);
  3. Kopieren Sie Ihr Authentifizierungs-Cookie (~ / .config / pulse / cookie) auf diesen Computer.
  4. Zum Schluss laufen export PULSE_SERVER="tcp:localhost:24713"und testen mit pactl info.

Verwenden Sie die automatische Direktverbindung mit der X11-basierten Erkennung

Immer wenn Sie SSH mit aktivierter X11-Weiterleitung verwenden, verwenden PulseAudio-Programme X11, um Ihren Soundserver zu ermitteln (verwenden Sie pax11publishoder xprop -root PULSE_SERVER, um es selbst zu sehen). Sie werden versuchen, eine direkte (nicht-SSH, unverschlüsselte) Verbindung zu Ihrem Computer für das Audio-Streaming herzustellen.

Verwenden Sie die automatische direkte Verbindung mit der DNS-SD-Erkennung

Wenn Sie avahi-daemon und pulseaudio-zeroconf installiert haben, können Sie "Anderen Maschinen erlauben, lokale Geräte zu erkennen" aktivieren. Dadurch wird "module-zeroconf-publish" geladen.

Bei anderen Computern, bei denen die Option "Erkennbare Netzwerkgeräte lokal verfügbar machen" aktiviert ist (module-zeroconf-discover), werden die von Ihrem Computer exportierten Ausgaben (Senken) automatisch aufgelistet. Sie verwenden eine direkte (unverschlüsselte) Verbindung für das Audio-Streaming.

Bei dieser Methode muss ~ / .config / pulse / cookie auf allen Hosts identisch sein.

Grawity
quelle
2
Wo gibt ~/.pulse_cookiees das Auf der Fernbedienung oder vor Ort?
HSchmale
2
Beide. Es wird vom pulseaudio-Daemon generiert und dann durch Verbinden von Clients (wie z. B. einem Kennwort) gelesen. Sie möchten es also vom Server auf die Clients kopieren. (Beachten Sie, dass der Pfad inzwischen in geändert wurde ~/.config/pulse/cookie. Wenn einer nicht funktioniert, probieren Sie den anderen.)
grawity
2
Beachten Sie, dass Sie nach dem Ändern der Einstellungen in paprefs mindestens pulseaudio manuell neu starten müssen. In meinem Fall, nachdem ich stundenlang versucht hatte herauszufinden, was los war, habe ich gerade einen Neustart durchgeführt und dann hat alles funktioniert :).
crazy2be
Das hat bei mir funktioniert, danke. Verwenden eines Remote-Himbeer-Pi mit rtl-sdr, damit Audio über ssh funktioniert.
Paul M