I have been trying to stream my Linux pc audio to windows pc. So far I have managed to install pulseaudio on windows and setup a server. On my linux machine I added ip of the windows machine as default-server in config file. So far it works really good. But all my output and input devices from my local Linux machine disappear. I want to have the option to play audio from my local machine and remote windows machine at the same time (its a unique situation) . I have read in the pulseaudio documentation I can do this with zeroconf module. However how does one install zeroconf on pulseaudio on a windows machine. I really want to have it as an output device that I can select.
If there is any better way of doing this with low latency please recommend, with pulseaudio the latency is almost none.
I did try with ffmpeg but the latency is too much.
If IP addresses are configured correctly and audio stream is working you probably don’t need zeroconf to publish and discover the audio sink on the network – Network Setup – PulseAudio
You might want to check out using RTP connection instead of TCP that does not require zeroconf
and does not require PulseAudio on remote system PulseAudio/Documentation/User/Network/RTP
I want to have the option to play audio from my local machine and remote windows machine at the same time
PulseAudio has module module-combine-sink to connect two or more sinks for simultaneous playback
If the local system only has one sink for audio playback the module can be loaded with a simple command:
pactl load-module module-combine-sink
and then set the combined sink as default for audio playback
pactl set-default-sink combined
If the local system has more than one sink output it is better to specify the name of one local sink and the remote sink.
Get the names of available sinks from pactl list sinks short and use a command like this:
Yes but with zeroconf on linux the sink gets added automaticly in the audio output devices.
It would be great if I can just add the ip of the windows pc in a config to create a sink instead of setting is as default-server on my linux machine.
I can then easily output audio on both machines by using that option to create virtual output to combine all.
I just need to add pulse audio server on windows machine as a output device on my linux machine. Because if I add it as default-server on linux machine, I lose my local output devices.
It has to be low latency, I tried ffmpeg and vlc and the latency is just too big. Pulseaudio is almost without latency.
I have been thinking about just putting raspberry pi and setup pulseaudio server on that. But I would need to run an ethernet cable which is kinda troublesome, so if I can use windows pc to do it that would be great.
Ok I have tried to use module-tunnel-sink-new to add remote windows pc as a sink on my linux pc. That is exactly what I wanted, it plays fine. However when I try to combine my Line Out and tunnel, pulseaudio just halts. And my system bricks. Standalone it works fine.
I used your commands to combine and also some of my own:
Connect to remote windows pc (works fine): pactl load-module module-tunnel-sink-new sink_name=win_tun server=tcp:192.168.6.9:4713
To combine them I tried 2 commands (non of them worked): pactl load-module module-combine-sink sink_name=spojeno slaves=win_tun,alsa_output.pci-0000_00_1b.0.analog-stereo adjust_time=5 resample_method=src-sinc-medium-quality
And pactl load-module module-combine-sink slaves=alsa_output.pci-0000_00_1b.0.analog-stereo,win_tun
Also tried setting it manually as default: pactl set-default-sink spojeno
But everytime it will break. I don’t know reason or solution.