ODR-AUDIOENC(1)

NAME
odr-audioenc - DAB and DAB+ audio encoder

SYNOPSIS
odr-audioenc [OPTION...]

DESCRIPTION
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.

OPTIONS

-h, --help
    Print this help text and exit

--version
    Print program version and exit

-D, --drift-comp
    Enable ALSA/VLC sound card drift compensation.

  alsa input:

-d, --device=ALSA_DEVICE
    Set ALSA input device.

  file input:

-i, --input=FILENAME
    Input filename (use -i - for stdin).

-f, --format={ wav, raw }
    Set input file format (default: wav).

--fifo-silence
    Input file is fifo and encoder generates silence when fifo is empty. Ignore EOF.

  JACK input:

-j, --jack=NAME
    Enable JACK input, and define our name

  VLC input:

-v, --vlc-uri=URI
    Enable VLC input and use the URI given as source

-C, --vlc-cache=MS
    Specify VLC network cache length.

-g, --audio-gain=DB
    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.

-V  Increase the VLC verbosity by one (can be given multiple times)

-L OPTION
    Give an additional options to VLC (can be given multiple times)

  GStreamer input:

-G, --gst-uri=URI
    Enable GStreamer input and use the URI given as source

  Encoder parameters:

-b, --bitrate={ 8, 16, ..., 192 }
    Output bitrate in kbps. Must be a multiple of 8.

-c, --channels={ 1, 2 }
    Nb of input channels (default: 2).

-r, --rate={ 24000, 32000, 48000 }
    Input sample rate (default: 48000).

  DAB specific options:

-a, --dab
    Encode in DAB and not in DAB+.

--dabmode=MODE
    Channel mode: s/d/j/m (default: j if stereo, m if mono).

--dabpsy=PSY
    Psychoacoustic model 0/1/2/3 (default: 1).

  DAB+ specific options:

-A, --no-afterburner
    Disable AAC encoder quality increaser.

--aaclc
    Force the usage of AAC-LC (no SBR, no PS)

--sbr
    Force the usage of SBR (HE-AAC)

--ps
    Force the usage of SBR and PS (HE-AACv2)

-B, --bandwidth=VALUE
    Set the AAC encoder bandwidth to VALUE [Hz].

--decode=FILE
    Decode the AAC back to a wav file (loopback test).

  Output and PAD parameters:

-o, --output=URI
    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.

-k, --secret-key=FILE
    Enable ZMQ encryption with the given secret key.

-e, --edi=URI
    EDI output uri, (e.g. 'tcp://localhost:7000')

--fec=FEC
    Set EDI output FEC

-T, --timestamp-delay=DELAY_MS
    Enabled timestamps in EDI (requires TAI clock bulletin download) and add a delay (in milliseconds) to the timestamps carried in EDI

-w, --write-icy-text=FILENAME
    Write the ICY Text into the file, so that ODR-PadEnc can read it.

-W, --write-icy-text-dl-plus
    When writing the ICY Text into the file, add DL Plus information.

--identifier=ID
    An identifier string that is sent in the ODRv EDI TAG. Max 32 characters length.

--startup-check=SCRIPT_PATH
    Before starting, run the given script, and only start if it returns 0.

-p, --pad=BYTES
    Enable PAD insertion and set PAD size in bytes.

-P, --pad-socket=IDENTIFIER
    Use the given identifier to communicate with ODR-PadEnc.

-l, --level
    Show peak audio level indication.

-S, --stats=SOCKET_NAME
    Connect to the specified UNIX Datagram socket and send statistics. This allows external tools to collect audio and drift compensation stats.

-s, --silence=TIMEOUT
    Abort encoding after TIMEOUT seconds of silence.

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

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