FDK-AAC-DABplus
Installation
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/, follw instrutcions to install it to the system. If you already build crc-dabmux, then this library is already installed. Next, download and build:
git clone https://github.com/piratfm/fdk-aac-dabplus.git cd fdk-aac-dabplus ./bootstrap ./configure --enable-example make 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. To make stream better for crc-dabmux, additional buffer between encoder and fifo is needed. To calculate proper block size to mbuffer "-s" param, 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 heling to solve problem.