Forwarding PipeWire (the modern audio and video server used in GNOME) over SSH on Debian 13 (or any Linux distribution using PipeWire) is not as straightforward as forwarding PulseAudio, but it can be achieved using a combination of SSH tunneling and PipeWire's network capabilities. Here’s how you can do it:
PipeWire supports network streaming via the pw-jack or pw-pulse modules, but the most reliable method is to use the pipewire-pulse module to emulate PulseAudio and then forward that over SSH.
pipewire-pulse module is loaded (it usually is by default on GNOME systems).If it’s not running, start it with:bashpactl info
bashsystemctl --user start pipewire-pulse
Since PipeWire emulates PulseAudio, you can forward the PulseAudio socket over SSH.
Run the following SSH command to forward the PulseAudio socket:
bashssh -X -R /tmp/pulseaudio-socket:/run/user/$(id -u)/pulse/native user@remote-machine
-X enables X11 forwarding (optional, only needed if you want GUI apps).-R forwards the local PulseAudio socket to the remote machine.Set the PULSE_SERVER environment variable to use the forwarded socket:
bashexport PULSE_SERVER=unix:/tmp/pulseaudio-socket
Now, any audio played on the remote machine will be forwarded to your local machine.
pw-jack for Low-Latency AudioIf you need low-latency audio (e.g., for music production), you can use the JACK compatibility layer in PipeWire.
bashpw-jack jack_dummy
netjack2 or a similar tool (this is more complex and may require additional setup).paplay /usr/share/sounds/alsa/Front_Center.wav).bashls -l /tmp/pulseaudio-socket
pipewire-pulse service is running on the remote machine:
bashsystemctl --user status pipewire-pulse
/run/user/$(id -u)/pulse directory is accessible.ffmpeg or gstreamer over SSH with X11 forwarding.