RTL Multi-User Server
Switch branches/tags
Nothing to show
Clone or download



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.

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 ha7ilm@sdr.hu