From Opendigitalradio
Revision as of 19:50, 11 September 2013 by Tipok (Talk | contribs)

Jump to: navigation, search


This is open-source version of DAB+ encoder.

To build DAB+ encoder, you need fec library from crc.ca website: http://mmbtools.crc.ca/content/view/39/65/, follow instrutcions to install it to the system. If you already build crc-dabmux from sources, then this library is already installed. Next, download and build encoder:

git clone https://github.com/piratfm/fdk-aac-dabplus.git
cd fdk-aac-dabplus
./configure --enable-example
sudo make install

Encoding samples

After successful installation, DAB+ encoding may be used:

Live Stream enconding and preparing for DAB mux:

arecord -t raw -f S16_LE -c 2 -r 48000 -D plughw:CARD=Loopback,DEV=0,SUBDEV=0 | \
aac-enc-dabplus -b 24 -f raw -c 2 -r 48000 -i /dev/stdin -o /dev/stdout 2>/dev/null | \
mbuffer -q -m 10k -P 100 -s 360 > station1.fifo

Wave file enconding and preparing for crc-dabmux:

aac-enc-dabplus -a -b 64 -i wave_file.wav -o station1.dabp

Problems solving

If crc-dabmux generates 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 have 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 setted to 360 bytes. This trick helping to solve problem.

Personal tools