Skip to content

Command line options

Oona Räisänen edited this page Nov 5, 2025 · 24 revisions

If no options are given redsea will default to decoding MPX from the standard input using the default sample rate.

Some of these options may be given multiple times and the last one will stay in effect (unless otherwise stated below).

Input options

If no options are given, redsea expected an FM multiplex signal via stdin as raw 16-bit signed-integer PCM; see input formats.

short long argument description
-c --channels number Number of channels if the input is raw PCM; 1 by default. Channels are interleaved streams of samples that are demodulated independently.
-f --file file name Use an audio file (WAV etc.) as MPX input, instead of raw PCM from stdin. All formats readable by libsndfile should work. The input format, number of channels, and samplerate are detected from the header automatically.

You can read a file from stdin by using -f -.

This option can't be used with --input.
-i --input {bits, hex, mpx, tef} Format of the stdin input (see Input formats for more info):
bits: ASCII binary format (0100010110101...). These should be the raw bits after delta decoding.
hex: RDS Spy compatible hex input (timestamps are ignored).
mpx: FM broadcast multiplex signal as raw PCM (default).
tef: Serial data from the TEF6686 tuner.

This option can't be used with --file. To read a WAV from stdin, use --file -.
-r --samplerate number Set stdin sample frequency in Hz. The input will be resampled if this differs from 171000 Hz (uses more CPU).

Output options

short long argument description
-e --feed-through Echo the input signal to stdout and print decoded groups to stderr.
-E --bler Display the average block error rate, or the percentage of blocks that had errors before error correction. Averaged over the last 12 groups. For hex input, this is the percentage of missing blocks.
-o --output {hex, json} Output format:
hex: RDS Spy compatible hex format.
json: Newline-delimited JSON (default).
-p --show-partial Print multi-group data such as PS names, RadioText, and alternative frequencies as soon as it arrives, even if not fully received. Useful for real-time displays or noisy conditions. Data is in partial_{ps,radiotext,alt_kilohertz}
-R --show-raw Show raw group data as hex in the JSON stream.
-t --timestamp format string Add time of decoding to JSON or hex groups; see man strftime for formatting options (or try "%c").
--time-from-start (v1.3+) Add the stream (file) position, in seconds, to each group. It works only for MPX input and represents the number of seconds from the beginning of the file until sampling the first bit of each group. See Time and timestamps
-u --rbds RBDS (USA/Canada) mode; use North American program type names and "back-calculate" the station's call sign from its PI code. Note that this calculation gives an incorrect call sign for most stations that transmit TMC; and that the calculation does not make sense outside North America.
-x --output-hex (For backwards compatibility; see -o).

General

short long argument description
-l --loctable directory Load a TMC location table from a directory in TMC Exchange format. This option can be specified multiple times to load several location tables.
--no-fec Disable forward error correction; always reject blocks with incorrect syndromes. In noisy conditions, fewer errors will slip through, but also fewer blocks in total. See wiki for discussion.
-s --streams (v1.2+) Decode additional (RDS2) data streams in MPX input. For hex input, these are always decoded if present.
-? --help Show usage help.
-v --version Print version string and exit.
Clone this wiki locally