Difference between revisions of "FDK-AAC-DABplus"

From OpenDigitalRadio
Jump to navigationJump to search
(Created page with "== 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/, foll…")
 
Line 2: Line 2:
 
This is open-source version of DAB+ encoder.
 
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:
+
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
 
  git clone https://github.com/piratfm/fdk-aac-dabplus.git
Line 31: Line 31:
 
  <6> ETI frame number: 228
 
  <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:
+
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:
  
 
{| border="1" cellpadding="5" cellspacing="0"
 
{| border="1" cellpadding="5" cellspacing="0"
Line 65: Line 65:
 
|}
 
|}
  
In example above, for stream with bitrate 24 kbps, mbuffer size setted to 360 bytes. This trick heling to solve problem.
+
In example above, for stream with bitrate 24 kbps, mbuffer size setted to 360 bytes. This trick helping to solve problem.

Revision as of 18:50, 11 September 2013

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/, 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
./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, 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.