ODR-AudioEnc
(Created page with "'''ODR-AudioEnc''' is a DAB and a DAB+ encoder, replacing FDK-AAC-DABplus. The DAB encoder is derived from libtoolame-dab. toolame-02l has been converted to a shared library ...") |
BasicMaster (Talk | contribs) m (Link to older encoders) |
Revision as of 10:11, 7 February 2017
ODR-AudioEnc is a DAB and a DAB+ encoder, replacing Toolame-DAB and FDK-AAC-DABplus respectively.
The DAB encoder is derived from libtoolame-dab. toolame-02l has been converted to a shared library libtoolame-dab.
The DAB+ encoder is using the fdk-aac library the Fraunhofer FDK AAC code from Android, patched for 960-transform and proper header and firecode.
The main tool is odr-audioenc, which can encode from a file or pipe source, all inputs supported by libVLC or an ALSA soundcard, and encode to a ZeroMQ output compatible with ODR-DabMux, to a file or to standard output. The VLC ALSA input supports experimental sound card clock drift compensation, that can compensate for imprecise sound card clocks.
DAB MOT Slideshow and DLS support is possible thanks to ODR-PadEnc
For detailed usage, see the usage screen of the different tools.
Its development is public : http://github.com/Opendigitalradio/ODR-AudioEnc
Contents |
Installation
Prerequisites
The ODR-AudioEnc package depends on libfec, boost-thread, boost-system, alsa and ZeroMQ. For instructions on how to install these, please see ODR-DabMux#Prerequisites
The mot-encoder optionally needs ImageMagick's magick_wand to be able to resize pictures.
Building
See https://github.com/Opendigitalradio/ODR-AudioEnc#how-to-build
Usage
Several usage scenarios are shown in https://github.com/Opendigitalradio/ODR-AudioEnc#how-to-use
Problem solving
In the case you are using ZeroMQ between the encoder and odr-dabmux, and you see errors that the size of the data is wrong, then the configured bitrate in the mux probably doesn't correspond to the bitrate given to the encoder. Make sure they are identical.
If you are using a pipe between the encoder and odr-dabmux, and you see a lot of errors like this:
<2> ERROR: Incomplete DAB+ frame! 136 != 360 <5> reach end of file -> rewinding <2> ERROR: Can't rewind file <6> ETI frame number: 228
Then the stream has to be buffered before giving it to muxer, this additional buffer installed between encoder and fifo. To calculate proper block size for mbuffer ("-s" parameter), the table below may be used:
DAB+ Stream bitrate, kbps | Block size, bytes |
---|---|
16 | 240 |
24 | 360 |
32 | 480 |
48 | 720 |
56 | 840 |
64 | 960 |
72 | 1080 |
128 | 1920 |
160 | 2400 |
In example above, for stream with bitrate 24 kbps, mbuffer size set to 360 bytes. This trick helping to solve problem.
Historical notes
The encoders were renamed at version 0.2.0. The aac-enc testing program disappeared, but its code is still in src/. The aac-enc-dabplus and aac-enc-dabplus-zmq were renamed to dabplus-enc-file and dabplus-enc-file-zmq. dabplus-enc-alsa-zmq appeared in v0.2.0.
In v0.2.2, dabplus-enc-file-zmq received support for output to file and pipe, making dabplus-enc-file obsolete, which has therefore been removed.
In v0.4.0, lots of code redundancy between different encoder variants has been merged into dabplus-enc. The old tools dabplus-enc-file-zmq, dabplus-enc-alsa-zmq and all this have been replaced by a single encoder.
Some of the encode- scripts available in the mmbtools-aux repository might still make use of the old names.
In september 2016, FDK-AAC-DABplus was split in three: ODR-AudioEnc, fdk-aac and ODR-PadEnc, for ease of maintainability and packaging, to clarify the licence situation a bit, and in the hope that the DAB+ modification to fdk-aac could be given upstream.