Skip to content

Choose an AAC Encoder or Decoder ​

Choose by encoding or playback needs, hardware, required AAC profiles, and software license. FAAC is an encoder; FAAD is a decoder. Start with your application below, then check profile support and licensing.

Start with your application ​

Your requirementStart here
AAC/M4A output with compact C integrationFAAC; test quality and resource use for your workload
AAC playback in a C applicationFAAD; choose the engine for your hardware and release requirements below
Lossless music storage or mastersFLAC; retain the original PCM information
Interactive voice or WebRTCOpus; evaluate delay and communications requirements
HE-AAC v2 / Parametric Stereo encodingFDK-AAC or Apple AudioToolbox where available; check software and patent licensing
Native Apple-platform audio conversionAudioToolbox; query supported profiles, sample rates, and channel layouts
Digital Radio Mondiale (DRM)An xHE-AAC implementation with the required DRM broadcast or receiver integration
Low-bitrate speech and music streamingCompare xHE-AAC and Opus for your delivery format, playback support, and licensing requirements
An existing FFmpeg pipelineThe encoders available in your FFmpeg build; compare the settings you actually deploy
Playback on MP3-only hardwareLAME MP3

Choose a decoder for your hardware ​

Your targetDecoder to evaluateWhy
Modern processor with an efficient FPUFAAD3, if a development engine fits your projectFloating-point design; faster than Helix in the published Apple M1 test. LGPL v2.1+.
An application needing the released FAAD engineFAAD2Released decoder with HE-AAC v2 Parametric Stereo (PS) support. GPL v2+.
Legacy processor or microcontroller without an efficient FPULibHelixFixed-point arithmetic; no HE-AAC v2 PS support. Check the selected port's license and profiles.
Existing FFmpeg applicationThe available libavcodec decoderReuse the media framework already in your pipeline.
Native Apple applicationAudioToolboxUse the platform's audio APIs and query available formats.

An FPU is a hardware floating-point unit. Match the decoder to your processor; desktop throughput does not predict performance on a microcontroller. The decoder benchmark comparison shows measured speed, code size, and memory use.

Library capabilities ​

AAC encoders ​

EncoderCommon AAC profilesIntegration
FAACLC, HE v1C encoder library and CLI.
FFmpeg native AACLC only; no HE v1/v2 encodingBuilt into libavcodec and the FFmpeg CLI.
FDK-AACLC, HE v1/v2Encoder library; fdkaac provides a separate CLI. Custom, non-free software license.
Apple AudioToolboxLC, HE v1/v2 where availableApple-platform APIs; query formats on the target OS.

FFmpeg can also call optional FDK-AAC or Apple AudioToolbox backends. Their HE support belongs to those encoders, not FFmpeg's native AAC encoder. See FFmpeg's encoder documentation.

AAC decoders ​

DecoderCommon AAC profilesIntegration
FAAD2LC, HE v1/v2, Main, LTPReleased C decoder library and CLI; GPL v2+.
FAAD3Check the selected development buildFloating-point C decoder engine for FPU-equipped processors; LGPL v2.1+.
FFmpeg native AACLC, HE v1/v2Built into libavcodec and the FFmpeg CLI.
FDK-AACLC, HE v1/v2Decoder library with a custom, non-free software license.
LibHelixLC, HE v1; no HE v2 PSFixed-point decoder; suitable for evaluating on hardware without an efficient FPU.
Apple AudioToolboxLC, HE v1/v2 where availableApple-platform APIs; query formats on the target OS.

These tables show common profiles, not every extension. Check your selected release and build. Apple's format identifiers describe platform capability queries; gapless playback also depends on the player.

xHE-AAC, Digital Radio Mondiale, and Opus ​

FAAC supports LC and HE-AAC v1, not xHE-AAC. xHE-AAC targets low-bitrate speech and music and is mandatory in Digital Radio Mondiale (DRM), the digital radio broadcast standard. See Fraunhofer's overview.

xHE-AAC and Opus overlap in streaming uses; Opus also serves interactive voice and conferencing. Compare delay, playback support, and licensing. A DRM application needs broadcast or receiver integration in addition to an audio library.

Software licenses and patent rights ​

FAAC uses LGPL v2.1+, released FAAD2 uses GPL v2+, and the FAAD3 development engine uses LGPL v2.1+. FDK-AAC has a custom license that Fedora classifies as non-free. Check the license shipped with your version; software copyright and codec patents are separate.

Patent status by AAC profile ​

ProfilePatent considerations
AAC-LCThe foundational patents have expired.
HE-AAC v1The foundational patents, including Spectral Band Replication (SBR), have expired.
HE-AAC v2Adds Parametric Stereo; associated patents expire in 2029.
xHE-AACHas additional patent restrictions; check current licensing terms.

These profile distinctions apply across implementations, including FFmpeg. Patent applicability depends on jurisdiction and implementation. See the Via Licensing Alliance AAC program for current HE-AAC v2 and xHE-AAC licensing information.

Via LA states that it does not charge patent license fees for distributing AAC bitstreams, including broadcasts and streams. Encoder and decoder products have separate licensing considerations.

Validate your choice ​

  1. Check your budget: use the AAC benchmark results as a starting point, then measure CPU, code size, and RAM on your target.
  2. Check the sound: try the converter or follow the listening-test guide at your intended bitrate.
  3. Integrate: follow the FAAC encoder guide, FAAD decoder guide, or installation guide.

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