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.
1 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
- Use
pax11publishto discover your PulseAudio listener port (usually 4713); - Connect to another computer with
ssh -R 24713:localhost:4713(the remote port '24713' was chosen arbitrarily); - Copy your authentication cookie (~/.config/pulse/cookie) to that computer;
- Finally run
export PULSE_SERVER="tcp:localhost:24713"and test withpactl 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.
6