Arduino FDK AAC Encoder and Decoder Library
|
I was looking for a way to encode sound PCM data to the AAC or MPEG data format on some Arduino Devices. That's when I found the Fraunhofer FDK AAC library.
The Android-targeted implementation of the Fraunhofer AAC can be used for encoding and decoding, uses fixed-point math and is optimized for encoding on embedded devices/mobile phones. The library is currently limited to 16-bit PCM input. So this seems to be the perfect match to be used in Arduino based Microcontrollers.
I have forked the fdk-aac project, converted it to an Arduino library and provided a simple Arduino friendly API. The only caveat is, that I have removed all optimized processor specific code (e.g. for ARM, 386 and mips), so that it will compile with the same code on all environements.
For Arduino, you can download the library as zip and call include Library -> zip library. Or you can git clone this project into the Arduino libraries folder e.g. with
This project can also be built and executed on your desktop with cmake:
On some processors we get compile errors because the arrays are too big.
Please uncomment the #define PIT_MAX_MAX line in the AACConstantsOverride.h file.
All examples have been written and tested on a ESP32. The basic funcationality of the encoder and decoder however should work on all Arduino Devices and is independent from the processor.
Please read the included [NOTICE](NOTICE).