Skip to content
This repository has been archived by the owner. It is now read-only.
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


RTL Multi-User Server is a small python script to allow multiple clients control the same RTL-SDR compatible DVB-T tuner, while also receiving I/Q samples.

Update 2020-05-27: This project is not developed anymore. Check the nmux tool in csdr for a faster alternative (however, that does not support forwarding commands, so it's not an exact replacement).

How does it work?

  • rtl_mus requires an instance of rtl_tcp to connect to.
  • When it receives a command from any of its clients, rtl_mus resends it to the rtl_tcp server.
  • It continously reads samples from rtl_tcp, and resends them to the clients.

Other features

DSP processing

rtl_mus can also execute a command to perform DSP processing on the I/Q stream; then the processed I/Q stream is sent to its clients. A sample command for FLAC processing is included in the config file. FLAC is a loseless codec originally intended for audio, but it seems to work on sampled RF, too... 😄 As of a FLAC processed I/Q stream requires about 20% less bandwidth than the original, it might help to transport I/Q signals over a low-bandwidth internet link, but as of none of the SDR software can decode FLAC right now, another instance of rtl_mus has to be run locally, to decode the FLAC-encoded signal.

Permissions on commands

By changing the source code, one can easily allow and deny remote clients execute particular commands on the rtl_tcp server. Commands that are not allowed are simply not forwarded by rtl_mus.

On rtl_tcp crash it fills clients with zeros

It can be particularly useful to avoid your GNU Radio flowgraph hang when using an OsmoSDR Source block.


András Retzler


RTL Multi-User Server




No releases published


No packages published


You can’t perform that action at this time.