Forwarding audio like X in SSH


While it is possible to use X applications remotely by using -X switch in ssh, the sound is being played in remote machine's speaker only. For example if I view a film in VLC/Totem only video is visible and I can't hear the audio. Is there a way to forward audio too? [without digging through Pulse-audio's setup, I mean; Like how ssh understands X forwarding by itself.]

I have tried this only in Ubuntu (in various Ubuntu versions from 9.10 through 10.10), if that helps.

Best Answer

First, run paprefs, go to Network Server and check Enable network access to local sound devices. This will load "module-native-protocol-tcp" in PulseAudio.

You can now access the PulseAudio server in several ways:

Manually forward the TCP connection over SSH

  1. Use pax11publish to discover your PulseAudio listener port (usually 4713);
  2. Connect to another computer with ssh -R 24713:localhost:4713 (the remote port '24713' was chosen arbitrarily);
  3. Copy your authentication cookie (~/.config/pulse/cookie) to that computer;
  4. Finally run export PULSE_SERVER="tcp:localhost:24713" and test with pactl info.

Use automatic direct connection with X11-based discovery

Whenever you SSH with X11 forwarding enabled, PulseAudio programs use X11 to discover your sound server (use pax11publish or xprop -root PULSE_SERVER to see for yourself). They will try to establish a direct (non-SSH, unencrypted) connection to your computer for audio streaming.

Use automatic direct connection with DNS-SD discovery

If you have avahi-daemon and pulseaudio-zeroconf installed, you can activate "Allow other machines to discover local devices". This will load "module-zeroconf-publish".

Other computers, with the option "Make discoverable network devices available locally" enabled (module-zeroconf-discover), will automatically list outputs (sinks) that your computer exports. They will use a direct (unencrypted) connection for audio streaming.

This method also requires ~/.config/pulse/cookie to be identical across hosts.

Related Question