AudioUtils
Format Guide

AAC Format: Complete Technical Reference

AAC — Advanced Audio Coding — is the most widely deployed audio codec in the world. It is the standard inside every M4A file from iTunes, every YouTube audio stream, every Apple Music download, and the wireless codec your Bluetooth headphones use to receive audio from your phone. Developed as the explicit successor to MP3, AAC delivers measurably better audio quality at the same bitrate. Understanding AAC means understanding M4A, streaming audio, Bluetooth headphone codecs, and most of what plays on modern devices.

History of the AAC Format

AAC development began in the early 1990s as part of the MPEG standards process — the same process that produced MP3. The consortium behind it included Dolby Laboratories, Fraunhofer IIS (the same German institute behind MP3), AT&T Bell Laboratories, Sony, and Nokia. The goal was explicit: beat MP3's efficiency by at least 30% at the same bitrate. MPEG-2 Part 7 standardized the first AAC specification in 1997. MPEG-4 Audio updated and extended it in 1999, adding profiles for different use cases. Apple adopted AAC as the default codec for iTunes in April 2003 — the same month the iTunes Store opened — encoding all music sold at 128 kbps AAC. This was the turning point. With Apple selling millions of iPods and iTunes tracks, AAC gained mainstream adoption that no other MP3 challenger had achieved. YouTube adopted AAC for its audio streams. The BBC uses AAC for DAB+ digital radio. Streaming services including Spotify (for some quality tiers), Amazon Music, and Apple Music all use AAC. Bluetooth implementations chose AAC as the second-tier codec above SBC: iPhone audio over Bluetooth uses AAC if the headphone supports it. The format continued evolving: HE-AAC (2003) improved low-bitrate streaming efficiency; HE-AAC v2 (2006) added parametric stereo for very low bitrates; xHE-AAC (2012) enabled the adaptive bitrate streaming used in modern mobile audio. AAC patents expired through the 2010s and 2020s, progressively reducing licensing friction.

Technical Specifications

AAC is a perceptual lossy audio codec using a transform-based encoding approach. The encoder transforms PCM audio into the frequency domain using a Modified Discrete Cosine Transform (MDCT) with a window size of 1024 or 128 samples (the short window is used for transient signals like percussion). AAC supports bitrates from 8 kbps per channel up to 529 kbps per channel. Standard stereo usage is 96–320 kbps. iTunes Store standard is 256 kbps stereo. Sample rates: 8 kHz, 11.025 kHz, 12 kHz, 16 kHz, 22.05 kHz, 24 kHz, 32 kHz, 44.1 kHz, 48 kHz, 64 kHz, 88.2 kHz, and 96 kHz. Multichannel support: up to 48 channels in the standard profile; up to 48 channels with object-based audio in MPEG-D extensions. AAC uses temporal noise shaping (TNS) to handle transients better than MP3. It uses a backward adaptive prediction filter and joint stereo coding. The result is roughly 30% better coding efficiency than MP3 at any given bitrate — a 128 kbps AAC file sounds approximately as good as a 192 kbps MP3.

AAC Profiles Explained: LC, HE-AAC, HE-AAC v2, xHE-AAC

AAC is not a single algorithm — it is a family of profiles with different complexity and efficiency trade-offs. AAC-LC (Low Complexity) is the baseline and most common profile. It is what iTunes, Apple Music, and most streaming services use at 128–320 kbps. All AAC-capable devices support AAC-LC. HE-AAC v1 (High Efficiency AAC) adds Spectral Band Replication on top of AAC-LC. SBR works by encoding only the lower half of the audio spectrum in the core AAC stream, then using a mathematical model to reconstruct the upper half at the decoder. This halves the data needed to represent high frequencies, making HE-AAC v1 significantly more efficient at 48–80 kbps — ideal for streaming radio, DAB+ digital radio, and internet radio. HE-AAC v2 adds Parametric Stereo on top of HE-AAC v1. Instead of encoding two independent channels, the encoder stores a mono downmix plus mathematical parameters describing the stereo image. The decoder reconstructs stereo from these parameters. At 24–48 kbps, HE-AAC v2 can produce acceptable stereo audio that HE-AAC v1 or AAC-LC would mangle. Used in very-low-bitrate streaming and some voice communication. xHE-AAC (Extended HE-AAC) is the modern evolution, adding USAC (Unified Speech and Audio Coding) tools that adapt between music-optimized and speech-optimized coding on the fly. Used in adaptive bitrate streaming where the bitrate can drop dramatically. Supported by iOS 13+ and modern Android.

How AAC Compression Works

AAC compresses audio by exploiting the limits of human hearing — the psychoacoustic principle that you only need to encode what the listener can actually perceive. The encoder splits the audio into overlapping blocks, applies a Modified Discrete Cosine Transform to convert from the time domain to the frequency domain, and produces a map of which frequencies have energy at each moment. The psychoacoustic model then calculates a masking threshold for each frequency band: any noise below that threshold will be inaudible due to masking effects from louder nearby sounds. Frequency masking: a loud tone at 1 kHz masks quieter sounds across nearby frequencies. Temporal masking: a loud transient like a snare hit masks quieter sounds in the 5–200 ms window after it. Absolute threshold of hearing: humans cannot hear above roughly 17 kHz (and most adults can't hear above 14–15 kHz), so those frequencies get minimal bits. After masking analysis, the encoder aggressively quantizes frequency components that fall below the masking threshold — because the quantization noise will be buried under louder sounds anyway. The quantized frequency data is then compressed with Huffman coding (lossless compression using statistical models). The difference from MP3: AAC uses a single MDCT filterbank rather than MP3's hybrid polyphase/MDCT approach, reducing aliasing artifacts. AAC's temporal noise shaping better handles pre-echo — the ringing before transients that plagues MP3 at lower bitrates. These architectural improvements explain why AAC consistently outperforms MP3 in listening tests.

AAC vs MP3: Head-to-Head Quality Comparison

AAC consistently outperforms MP3 at every bitrate in controlled listening tests. The efficiency advantage is roughly 30%: AAC at 128 kbps sounds approximately as good as MP3 at 192 kbps. At low bitrates (64 kbps and below), the gap is especially stark — MP3 produces obvious high-frequency smearing and pre-echo artifacts on transient-heavy material like drums and cymbals, while AAC handles the same material more cleanly. At medium bitrates (128–192 kbps), most casual listeners find AAC more transparent; trained critical listeners can reliably identify MP3 artifacts in blind tests but struggle more with AAC. At high bitrates (256 kbps and above), both formats are essentially transparent — the differences require ideal listening conditions and trained ears to detect, and many people cannot distinguish either from uncompressed WAV. The compatibility gap runs the other direction: MP3 is supported on every device made since 1995, including every car stereo, old Bluetooth speaker, and obscure portable player. AAC is supported by every modern device but has edge cases on older hardware. Apple devices have always favored AAC over MP3. Android has supported AAC since version 1.0. Web browsers universally support AAC. The practical conclusion: if compatibility is paramount, use MP3; if quality per file size is the priority, use AAC.

AAC Bitrate Guide: What Quality Levels Mean

AAC bitrate directly controls the trade-off between file size and audio quality. At 32 kbps, AAC is suitable for low-quality voice — intelligible speech but noticeable compression. At 64 kbps, AAC (using HE-AAC) handles voice well and music tolerably. A 1-hour recording is about 29 MB. This is the floor for music streaming. At 96 kbps, AAC sounds acceptable for music on casual listening devices — phone speakers, car audio — but reveals artifacts on headphones. At 128 kbps, AAC is the standard quality for most streaming services. Sound is good on consumer gear; artifacts become audible on revealing equipment in blind tests. A 4-minute song is roughly 3.8 MB. At 192 kbps, AAC is near-transparent for most listeners on most equipment. A 4-minute song is about 5.5 MB. At 256 kbps — Apple Music's standard, the iTunes Store standard — AAC is indistinguishable from the source for virtually all listeners in blind tests. A 4-minute song is roughly 7.5 MB. At 320 kbps, AAC is at maximum practical quality for the lossy codec. A 4-minute song is about 9.4 MB. For reference: CD-quality WAV at the same duration is 42 MB. The recommended settings: 256 kbps AAC for music distribution, 128 kbps AAC for voice content (podcasts, audiobooks), HE-AAC at 64–96 kbps for low-bandwidth streaming.

AAC and Bluetooth: The Connection to Your Headphones

AAC is one of the key codecs used in Bluetooth audio — the codec that determines the quality of wireless audio from your phone to your headphones. Bluetooth audio does not transmit the original audio file; it re-encodes audio in real time using a Bluetooth audio codec. The baseline codec all Bluetooth devices must support is SBC (Subband Codec) — adequate but not high quality. AAC is the next tier up: Apple iPhones transmit Bluetooth audio using AAC when the headphones support it. The iPhone performs real-time AAC encoding of the audio and the headphones decode it. This is why iPhone audio quality over Bluetooth headphones with AAC support sounds noticeably better than Android phones using SBC. Sony's LDAC and Qualcomm's aptX are higher-quality Bluetooth codecs than AAC in terms of raw data throughput, but AAC is the most important upgrade from SBC for Apple users because it is native to the iPhone's audio pipeline. AirPods use AAC for Bluetooth audio. Most Sony, Bose, and Jabra headphones support AAC. The practical upshot: if your headphones say they support AAC over Bluetooth and you are using an iPhone, your wireless audio quality is significantly better than the SBC baseline.

What AAC Cannot Do

AAC has real limitations alongside its advantages. AAC is lossy — the compression permanently removes audio data. Converting AAC to WAV, FLAC, or ALAC does not recover that lost data; you get a lossless container for already-compressed audio. Re-encoding AAC to another lossy format (MP3, OGG) compounds the quality loss — each lossy generation degrades the audio further. AAC at any bitrate cannot match the quality of uncompressed WAV or lossless FLAC — the gap is small at 256 kbps but theoretically measurable and audible under ideal conditions. AAC files carry patent licensing obligations — historically this required fees for encoder implementations, which is why some open-source Linux distributions did not ship AAC support by default. These patents have largely expired by 2024–2026, but legacy systems may still have AAC disabled. AAC does not have a lossless mode in its standard profiles (ALAC is a separate codec in the same container). AAC does not define a streaming container format — it requires M4A (for files), HLS segments, or DASH segments for delivery. Raw .aac files have limited metadata support compared to M4A. AAC is not the right choice for multi-generation production workflows — use WAV or AIFF for editing and convert to AAC only for final delivery.

Pros and Cons

Pros: Measurably better audio quality than MP3 at every bitrate — approximately 30% more efficient. Native support on every Apple device. Supported by all Android phones, all web browsers, and Windows 10+. Multiple profiles (AAC-LC, HE-AAC, HE-AAC v2, xHE-AAC) for different bitrate needs. Used by YouTube, Apple Music, Amazon Music, and most major streaming infrastructure as the delivery codec. Used in Bluetooth wireless audio on iPhones via AirPlay and AAC Bluetooth codec. Supports up to 48 audio channels. Sample rates up to 96 kHz. M4A container provides excellent metadata infrastructure. Cons: Lossy — quality loss from encoding is permanent. Not universally supported on older hardware (pre-2010 car stereos, some legacy devices). Historically patent-encumbered, causing incomplete support in some open-source environments; this is largely resolved by 2026 as key patents expired. No built-in lossless mode (ALAC is a separate codec). Converting from AAC to other lossy formats degrades quality. Open-source encoder ecosystem smaller than MP3's (though FFmpeg's AAC encoder has improved substantially).

Device and Software Compatibility

All Apple devices support AAC without exception: every iPhone, iPad, Mac, iPod, Apple Watch, Apple TV, and HomePod decodes AAC natively. Android has supported AAC since Android 1.0 (2008). Windows 10 and Windows 11 play AAC natively. Windows 7 and 8 required iTunes or codec packs. Chrome, Safari, Firefox, and Edge all play AAC in HTML5 audio and video. VLC plays AAC on every platform. iTunes and Apple Music treat AAC as their native format. Adobe Premiere, Final Cut Pro, and DaVinci Resolve import AAC. Most modern car head units support AAC — especially those with iPhone connectivity via CarPlay. Sony, Pioneer, Kenwood, and Alpine head units released after 2010 typically play AAC M4A via USB. Older car stereos may support only MP3. Smart speakers from Amazon and Google play AAC. PlayStation 4 and 5 handle AAC. Xbox Series plays AAC. Nintendo Switch does not natively play AAC audio files. Streaming platforms accept AAC for ingestion: YouTube accepts M4A, Spotify accepts M4A uploads. For web developers, all major browsers support AAC in the HTML5 audio and video elements — no fallback needed in 2026.

When to Use AAC

Use AAC when distributing to modern audiences on modern devices. Podcasts on Apple Podcasts and Spotify — both platforms prefer or accept AAC. Music distribution to iTunes, Apple Music, and streaming services that accept AAC or M4A. Web audio where broad browser support is needed and file size matters. Mobile apps on iOS and Android where audio quality needs to be good but bandwidth and storage are limited. Voice recordings, interviews, and narration where clarity at lower bitrates matters — HE-AAC handles voice extremely efficiently. Bluetooth audio: if your headphones support AAC, your iPhone will use it automatically. Avoid AAC for production and editing workflows — work in WAV or AIFF and convert to AAC only for the final delivery. Avoid AAC when targeting legacy hardware that does not support it — older car stereos, pre-2010 portable players — use MP3 for those cases. For archival where lossless is required, use FLAC or ALAC instead of AAC. In open-source projects that historically excluded AAC for licensing reasons, check whether your deployment environment supports it — most do in 2026, but some embedded Linux systems may not.