FAAD2 and FAAC are the free open-source AAC decoder and encoder pair, reading and writing the AAC audio inside MP4, M4A and ADTS files, and quietly powering the AAC output in a great many Windows rippers, converters and frontends.

Updated
Oct 1, 2026
Size
960KB
Downloads
24.5K
This week
9

AAC is the format sitting inside almost every MP4, M4A and iTunes file you own, and the one YouTube and most streaming services hand you.

FAAD2 is the decoder that reads it.

FAAC is the encoder that writes it.

FAAD2 has no window of its own and FAAC ships only a very basic one, so most people meet them through some other program that quietly calls one of them.

FAAD2 handles the AAC profiles still in active use: LC (Low Complexity), Main, LTP (Long Term Prediction), LD (Low Delay), HE-AAC using Spectral Band Replication, and HE-AACv2 which adds Parametric Stereo on top. That breadth is why it survives - plenty of decoders manage LC and then stumble on the HE-AACv2 streams common in mobile and streaming audio.

If the profile names mean nothing to you yet, the guide on the differences between AAC, AAC-LC and AAC-HE is the place to start.

FAAC 2.2: Better Sound at the Same Bitrate

FAAC 2.2 arrived on 29 September 2026, and most of it is work you hear rather than switches you set. Rate control, stereo coding, the quantizer, block switching and the HE-AAC side were all reworked, all aimed at getting more quality out of the same bitrate.

The changes you will actually notice when you use it:

  • MP4 is now the default output. FAAC picks the format from the file name you give it - .m4a, .mp4 or .m4b makes MP4, while .aac or .adts still makes a raw AAC stream.
  • True constant bitrate. The new --cbr switch holds a -b bitrate exactly, backed by a real bit reservoir, for services and devices that insist on it.
  • HE-AAC for surround. HE-AAC v1 now works on layouts up to 8 channels, so a 5.1 or 7.1 source can be squeezed small as well.
  • Gapless playback. MP4 files carry iTunes-style gapless information, and HE-AAC delay is padded so players that support gapless trim the right amount at both ends.
  • File names in any alphabet. Paths with Cyrillic, Greek, Chinese or accented characters now work on the command line and in the GUI, which also accepts 24-bit PCM input.
  • A more useful GUI. It now uses the same encoding engine as the command line, writes MP4, and opens on 128 kbps average bitrate.
BEFORE YOU UPGRADE

FAAC 2.2 changes both the library and the command line. The DLL is now faac-2.dll, so a program built for 2.0 or 2.1 still needs the DLL it shipped with, and one built for any 1.x release needs the libFAAC 1.40 DLL from the download page.

Scripts need checking too. The old --pns switch is gone in favour of --no-pns, and -q and -b can no longer be combined.

FAAD2 2.11.3 Is a Security Release

The August 2026 decoder update is not about features. It is a hardening pass, and a broad one.

It fixes a heap buffer overflow in the MP4 reader, a heap overflow in SBR channel-pair reconstruction, an off-by-one frame index check when seeking, several out-of-bounds reads and writes across the SBR and Huffman paths, and a set of integer overflows in allocation size checks. There are also null pointer dereference fixes in intra-channel and long-term prediction.

Why this matters more than it sounds. libfaad is embedded in a lot of downstream software, and a decoder is by definition pointed at files from strangers. If you ship anything that links it, this is the update to take.

How FAAC Got Here: 2.0 and 2.1

FAAC 2.0 in July 2026 was the largest single change in the project's history, and 2.1 followed a month later to tidy up after it. Everything below is still in 2.2.

Change Introduced What it means for you
HE-AAC v1 encoding, with real Spectral Band Replication 2.0 FAAC can make good small files at low bitrates, which it never could before
Mixed Mode joint stereo, now the default 2.0 Better stereo at the same bitrate, decided per frequency band rather than per file
New faac_* API, the old faacEnc* one removed 2.0 Older programs that link libfaac will not build or run against it
Every source file relicensed as original work under LGPL-2.1-or-later 2.0 The MPEG reference-code preamble is gone, so the licence question is settled
TNS filter order capped at 12 2.0 Fixes files that FFmpeg and FAAD were rejecting outright, and the dropouts that came with them
Optional hard per-frame peak-bitrate limiter, --cap-rate 2.1 Use it when a delivery spec sets a ceiling no single frame may cross

FAAC, FDK AAC, qaac or exhale

FAAC is no longer the obvious runner-up it was, but it is still not the right answer for every job.

Encoder Strongest at Pick it when
FAAC 2.2 AAC-LC and HE-AAC v1, stereo through 7.1; tiny, scriptable, fully LGPL You want a small free encoder with no licence questions attached
FDK AAC Codec HE-AACv2 and the low-delay AAC profiles, which FAAC does not write You need HE-AACv2 at very low bitrates, or low-delay AAC for calls and live audio
qaac Apple's AAC core, which still leads on music at higher bitrates Quality at 192 kbps and above matters more than anything else
exhale xHE-AAC, the newer standard built for very low bitrates You are targeting modern devices and want to go below what AAC handles well

If AAC is not obviously the right format for what you are doing, the guide Is DTS better than AAC? works through the comparison.

And Opus beats AAC outright at low bitrates for speech, streaming and game audio.

Programs That Call FAAC for You

Both tools are built to run from the command line rather than a GUI, which is why most people never touch them directly.

  • X AAC Encoder wraps the FAAC binary in a Windows 10 and 11 interface, with drag-and-drop batch encoding, MP4 tagging and cover art.
  • LameXP and fre:ac both call an AAC encoder when you pick AAC output.
  • CDex and Exact Audio Copy do the same on the CD ripping side.
  • FFMPEG Audio Encoder carries every encoder it needs inside the download, if you would rather not assemble anything.

If one of these feeds faac.exe an output name without an .aac extension and expects a raw stream back, it will now get MP4 instead. Point the program at an .aac output name, or stay on the FAAC version it was built for.

Where They Fit in a Windows Audio Chain

For everyday playback you almost certainly do not need FAAD2 as a separate install. LAV Filters, built on FFmpeg, decodes AAC, HE-AAC and everything around it inside any DirectShow player.

Where a dedicated FAAD2 wrapper still earns its place is on older setups. CoreAAC DirectShow Filter exposes the FAAD2 library as a registerable DirectShow component.

AAC ACM Codec does the same job through the Audio Compression Manager interface that VirtualDub-era applications expect.

Converting between AAC and MP3 is the other common pairing - decode with FAAD2, re-encode with the LAME MP3 Encoder, or run it the other way.

The companion piece on the best LAME settings for music, podcasts and audiobooks covers what to aim for on the MP3 side. If the terminology is still slippery, codecs versus containers untangles it.

System Requirements

FAAD2 2.11.4 and FAAC 2.2 are 64-bit builds for Windows 10 and Windows 11. The one 32-bit file on the download page is the older FAAD2 2.10.1 decoder.

Nothing needs installing. The FAAC MSYS2 UCRT64 build and FAAD2 run on a bare Windows 10 or 11 PC, while the FAAC MSVC build also needs Microsoft's Visual C++ runtime, which most PCs already have.

If the MSVC build complains that VCRUNTIME140.dll was not found, either switch to the MSYS2 UCRT64 build or install the Visual C++ Redist Runtimes.

They are small. The FAAC 2.2 MSVC build is 222 KB and the MSYS2 UCRT64 build is 333 KB, so keeping several versions side by side costs nothing.

Quick questions

Are FAAD2 and FAAC free?

Both are free and open source, with no paid tier. Since FAAC 2.0 every file in the encoder is licensed LGPL-2.1-or-later, which removed the last of the old MPEG reference-code restrictions.

Which file should I download?

Take FAAD2 2.11.3 and FAAC 2.2. For FAAC, the MSYS2 UCRT64 build runs with nothing else installed, despite the technical name, while the MSVC build suits anyone who already has the Visual C++ runtime or is linking the library in Visual Studio.

Why does FAAC now make .m4a files instead of .aac?

Since 2.2, MP4 is the default output and the format follows the file name you give with -o. Name the output .aac or .adts and you get a raw AAC stream exactly as before.

My converter broke after I updated FAAC. Why?

FAAC 2.0 replaced the old programming interface and 2.2 changed it again, so each generation uses its own DLL name. Put back the DLL the program was built with - libFAAC 1.40 from the download page for 1.x programs - or update the program itself.

FAAC or FDK AAC?

For ordinary stereo or surround at normal bitrates, FAAC 2.2 now covers AAC-LC and HE-AAC v1 on its own. FDK AAC is still the one to use for HE-AACv2 and the low-delay profiles, which FAAC does not write.

Do I need FAAD2 just to play AAC files?

Almost certainly not. Install LAV Filters instead, and if something still refuses to play, the Codec Finder will tell you what the file actually needs.

The full audio encoders category lists the frontends and alternatives worth comparing before you commit to one.

Download FAAD2 2.11.4 and FAAC 2.2 and see how they handle your files, or tell us how you got on if you have used them before.

AL
Alex
on 30 April 2024
Review #1
5/5Excellent
it's wonderful!

Share your thoughts on FAAD2 2.11.4 & FAAC 2.2

0 / 3000
Your rating
Verification code picture

Letters and numbers, not case sensitive. Hard to read? Get a new code.

Reviews and comments get a quick check before they go live - no spam allowed.

ALTERNATIVES TO FAAD2