Streaming audio from Linux to Windows


Having multiple PCs all needing to play audio is a pain - especially when you use a headset.

This is how I used to stream audio from my NUC running Linux to my Windows desktop - where the headset was plugged in.


There are a few options for getting audio from Linux to Windows:

  1. Using an actual cable - this doesn’t work when you have more devices than you have line in jacks, and you tend to get analog noise
  2. Using JACK - this is rather more complicated than I would like, and doesn’t integrate very well with the Linux or Windows ends
  3. Using PulseAudio - the Windows port of PulseAudio isn’t as well maintained as I’d like, but this integrates well with Linux

Given these choices, I ended up using PulseAudio.

PulseAudio on Linux

Setting up the Linux side of this is really easy:

  1. Open /etc/pulse/client.conf and add:
     default-server =

    Change to the IP of your Windows machine.

  2. Run:
     killall pulseaudio

PulseAudio on Windows

PulseAudio isn’t well maintained on Windows - the binaries linked from the official site are very old - for PulseAudio 1.1.

However, I found a much newer set of binaries from the X2Go project:

To set up PulseAudio 5.0 on Windows, do the following:

  1. Download from
  2. Extract it and copy the pulse folder to C:\pulse
  3. Create a file in that folder with these contents:
     load-module module-native-protocol-tcp port=4713 auth-ip-acl=;
     load-module module-esound-protocol-tcp port=4714 auth-ip-acl=;
     load-module module-waveout

    Replace with your local subnet.

  4. Test this setup by running: c:\pulse\pulseaudio.exe -F You should now be able to get Linux sound playing on your Windows PC.
  5. For a permanent setup, we need to create a Windows service rather than running PulseAudio in a command prompt. I use NSSM to run arbitrary programs as services. Download the latest version of NSSM.
  6. Extract it and copy nssm.exe from the win32 folder to c:\pulse.
  7. Run:
     c:\pulse\nssm.exe install PulseAudio
  8. Fill in the following details on the Application tab:
    • Path: c:\pulse\pulseaudio.exe
    • Startup directory: c:\pulse
    • Arguments: -F c:\pulse\

    On the Details tab, fill in:

    • Display name: PulseAudio

    Now click Install service.

  9. Finally, start the newly installed service - either through Services in Administrative Tools, or by running net start PulseAudio