Tue Feb 16 18:59:27 EST 2016

pulseaudio network

Seems that doing this with jack is a moot point: hard to get to work
properly.  I really only need it for ad-hoc things that are not so
sensitive to network problems.


It's quite simple actually:

Add this to /etc/pulse/defaults.pa on

# server
load-module module-native-protocol-tcp

# client
load-module module-tunnel-sink-new server=pt

A simpler way to do this is likely to transport the unix socket using
e.g. socat over ssh, but I don't want to get into dbus issues (likely
not that simple...).

However it might be possible to slave it to a unix socket instead of

this works:
mv native native_
socat UNIX-LISTEN:native,fork UNIX-CONNECT:native_

lets try with ssh

this works

tom@tp:~$ socat UNIX-LISTEN:/tmp/pulse-pVCJOtEM6pt3/native,fork exec:'ssh pt "socat - UNIX-CONNECT:/tmp/pulse-2L9K88eMlGn7/native"'

but only after stealing the socket from a running pulseaudio, so likely dbus or something has a reference.
I guess for now this is ok, if it's done over vpn or tcp tunneled over ssh.

RTP also works:

# server
load-module module-null-sink sink_name=rtp
load-module module-rtp-send source=rtp.monitor

# client

Problem is: too many packets on wifi.  Not usable.

Would be nice to do this with another solution, e.g.:

pulse -> jack -> compress/rtp -> rtp/decompress -> pulse/jack

mentioned here
is gstreamer

that might work

or ffmpeg:

for now, tcp +- works fine with pulse.

to make it easier to use, use zeroconf: