ODR-AUDIOENC(1) ODR-mmbTools ODR-AUDIOENC(1)

odr-audioenc - DAB and DAB+ audio encoder

odr-audioenc [OPTION...]

ODR-AudioEnc is an audio encoder for both DAB and DAB+ that integrates into the ODR-mmbTools. The encoder can read from JACK, ALSA, a file source, libvlc or GStreamer and encode to an EDI and ZeroMQ output compatible with ODR-DabMux. Several usage scenarios are outlined in the README located in /usr/share/doc/odr-audioenc.

The -D option enables sound card clock drift compensation. A consumer sound card has a clock that is always a bit imprecise, and would drift off slowly. Drift compensation can make sure that the encoding rate is correct by inserting or deleting audio samples. It can be used for both ALSA and VLC inputs and requires a system clock synchronised using NTP. When this option is enabled, you will see U and O printed in the console. These correspond to audio underruns and overruns caused by sound card clock drift. When sparse, they should not create audible artifacts.

This encoder is able to insert PAD (DLS and MOT Slideshow) generated by ODR-PadEnc, and communicates using a UNIX socket.

Print this help text and exit
Print program version and exit
Enable ALSA/VLC sound card drift compensation.

Set ALSA input device.

Input filename (use -i - for stdin).
Set input file format (default: wav).
Input file is fifo and encoder generates silence when fifo is empty. Ignore EOF.

Enable JACK input, and define our name

Enable VLC input and use the URI given as source
Specify VLC network cache length.
Apply audio gain correction in dB to source, negative values allowed. Use this as a workaround to correct the gain for streams that are much too loud.
Increase the VLC verbosity by one (can be given multiple times)
Give an additional options to VLC (can be given multiple times)

Enable GStreamer input and use the URI given as source

Output bitrate in kbps. Must be a multiple of 8.
Nb of input channels (default: 2).
Input sample rate (default: 48000).

Encode in DAB and not in DAB+.
Channel mode: s/d/j/m (default: j if stereo, m if mono).
Psychoacoustic model 0/1/2/3 (default: 1).

Disable AAC encoder quality increaser.
Force the usage of AAC-LC (no SBR, no PS)
Force the usage of SBR (HE-AAC)
Force the usage of SBR and PS (HE-AACv2)
Set the AAC encoder bandwidth to VALUE [Hz].
Decode the AAC back to a wav file (loopback test).

Output ZMQ uri. (e.g. 'tcp://localhost:9000') -or- Output file uri. (e.g. 'file.dabp') -or- a single dash '-' to denote stdout. If more than one ZMQ output is given, the socket will be connected to all listed endpoints.
Enable ZMQ encryption with the given secret key.
EDI output uri, (e.g. 'tcp://localhost:7000')
Set EDI output FEC
Enabled timestamps in EDI (requires TAI clock bulletin download) and add a delay (in milliseconds) to the timestamps carried in EDI
Write the ICY Text into the file, so that ODR-PadEnc can read it.
When writing the ICY Text into the file, add DL Plus information.
An identifier string that is sent in the ODRv EDI TAG. Max 32 characters length.
Before starting, run the given script, and only start if it returns 0.
Enable PAD insertion and set PAD size in bytes.
Use the given identifier to communicate with ODR-PadEnc.
Show peak audio level indication.
Connect to the specified UNIX Datagram socket and send statistics. This allows external tools to collect audio and drift compensation stats.
Abort encoding after TIMEOUT seconds of silence.

Originally written by Robin Alexander <robin.alexander@netplus.ch>.

odr-padenc(1), odr-dabmux(1)

December 2024 odr-audioenc 3.6.0