Skip to content

Published:

Introducing FAAD3, FAAM and FAAR ​

The next FAAC release is a suite of four C11 libraries and command-line tools under LGPL v2.1 or later: FAAC encodes, FAAD decodes, FAAM muxes and demuxes MP4, and FAAR resamples. FAAD3, FAAM and FAAR are new in it, and you can build them from source today. Each does one job, so a project can use one piece or all four.

FAAD3: a decoder that replaces FAAD2 ​

FAAD3 is a rewrite of the FAAD2 decoder as a C11 AAC decoder library and command-line tool. The library decodes ADTS frames or raw AAC access units into PCM, and the host application owns the surrounding media pipeline. The faad tool provides the file-oriented workflow. The FAAD overview describes supported audio and build options; the CLI manual and C API reference cover each integration path.

FAAD3 is LGPL; legacy FAAD2 is GPL. FAAD3 is licensed under LGPL v2.1 or later, while legacy FAAD2 is GPL v2 or later, so closed-source applications can link FAAD3 under LGPL terms. See software licenses and patent rights.

FAAD3 does not keep FAAD2's NeAACDec* API or ABI. For applications that cannot port yet, the FAAD2 compatibility library is now a shim that provides the legacy API on top of FAAD3. The shim is GPL v2 or later, so port to FAAD3 directly if you need LGPL terms. The API mapping, supported streams and the shim's limits are in the porting notes.

FAAM: MP4, M4A and M4B without another toolchain ​

Encoding AAC is only half the job: a player expects a proper M4A or M4B file, and most pipelines reach for a separate muxer to get one. FAAM is that piece, in the same dependency-free C. faac now writes MP4 through it, so a single encode produces a finished file, and gapless metadata is written for you: the encoder delay and padding go into the container, so tracks join without gaps. It can also extract audio without re-encoding and edit tags, cover art and audiobook chapters. See the FAAM overview, CLI manual and C API.

FAAR: resampling that fits the pipeline ​

Encoders and devices want a fixed rate, and recordings rarely arrive at it. FAAR converts the sample rate of float PCM with Fast, Good and High profiles, so you trade CPU, memory and delay for rejection instead of accepting one fixed filter. faac resamples through it, so converting 96 kHz material to 48 kHz no longer needs an extra tool, and its small C footprint suits real-time and embedded use. See the FAAR overview, CLI manual and C API.

Follow the evidence ​

This post is dated, so it quotes no measurements. The benchmark results page is the reference for quality, speed, footprint and memory use, with the date and builds behind each result. Use the implementation comparison for profile and licensing guidance, and see software licenses and patent rights for license history. To install the tools and libraries, visit installation.

Documentation & website content licensed under CC-BY-SA 4.0. WebAssembly component code licensed under AGPL-3.0.