Testing

AAC: Browser Support, Profiles, Known Issues

AAC works in Chrome 12+, Edge 12+, Safari 4+ on macOS and iOS, Opera 15+, IE 9+, Samsung Internet, and the Android Browser. Firefox 22+ uses the OS decoder.

Author

Prince Dewani

May 1, 2026

AAC (Advanced Audio Coding) is a lossy audio codec that ISO/IEC standardized as MPEG-4 Part 3 to replace MP3 with smaller files at the same quality. It works in Chrome 12+, Edge 12+, Safari 4+ on macOS and iOS, Opera 15+, IE 9+, Samsung Internet, and the Android Browser, while Firefox 22+ uses the OS decoder.

This guide covers what AAC is, the browsers that support it, the AAC profiles, common use cases, AAC versus MP3, and the known issues.

What is AAC?

AAC, short for Advanced Audio Coding, is a lossy audio compression standard that AT&T, Dolby, Fraunhofer, and Sony developed under MPEG-4 Part 3 (ISO/IEC 14496-3) and MPEG-2 Part 7 (ISO/IEC 13818-7). The codec delivers smaller files than MP3 at the same audio quality and supports up to 48 channels at sample rates from 8 kHz to 96 kHz.

Which browsers does AAC support?

Every modern browser engine supports AAC inside an MP4 or ADTS container, with global support sitting at roughly 97% of all web traffic. Firefox is the only mainstream engine that does not bundle a built-in decoder and instead calls the operating system.

Loading browser compatibility data...

AAC compatibility in Chrome

Chrome supports AAC from Chrome 12 on Windows, macOS, Linux, ChromeOS, and Android. Chrome 4 to 11 did not include the codec. The browser plays AAC inside MP4 and ADTS containers and supports the AAC Main and Low Complexity profiles. The open-source Chromium build excludes AAC for licensing reasons, so Chromium-only forks ship without it.

AAC compatibility in Edge

Edge supports AAC from Edge 12 on Windows, macOS, Linux, and Android. The legacy EdgeHTML 12 to 18 and the current Chromium-based Edge 79+ both ship the codec by default through Windows Media Foundation or the Chromium media stack, so AAC inside MP4 and ADTS plays without a separate plug-in.

AAC compatibility in Firefox

Firefox 22+ supports AAC, but it does not bundle a decoder. The browser calls the operating system: Media Foundation on Windows Vista and later, AVFoundation on macOS, the Android system decoder, and GStreamer on Linux. Firefox 2 to 21 did not support AAC at all. A Linux build without the gst-libav or fdk-aac GStreamer plugins installed cannot play AAC files.

AAC compatibility in Safari

Safari supports AAC from Safari 4 on macOS and from Safari 4 on iOS, iPadOS, and visionOS. Safari 3.1 and 3.2 did not support AAC. Apple uses AAC as the default audio codec across iTunes, Apple Music, Apple Podcasts, and FaceTime, so AAC inside MP4 and HLS plays on every modern Apple device without extra configuration. Safari is also the only browser that ships an xHE-AAC decoder out of the box.

AAC compatibility in Opera

Opera supports AAC from Opera 15 on Windows, macOS, and Linux. Opera 9 to 12.1 (the Presto-engine versions) did not support AAC. Blink-based Opera 15 and later inherit Chromium's AAC support, and Opera Mobile 80+ on Android plays AAC inside MP4 and ADTS.

AAC compatibility in Samsung Internet

Samsung Internet supports AAC across every shipped version on Galaxy phones and tablets. The browser uses the Android system AAC decoder through MediaCodec, so AAC, HE-AAC, and HE-AAC v2 inside MP4 and ADTS all play without configuration.

AAC compatibility in Android Browser

The legacy Android Browser supports AAC from Android 3.0 on. Android 2.1 to 2.3 did not include AAC inside the browser. Chrome for Android supports AAC from Chrome 12, and the Android System WebView used by in-app browsers tracks the Chrome version installed on the device.

AAC compatibility in Internet Explorer

Internet Explorer 9 and later support AAC on Windows Vista and Windows 7+, since IE 9 was the first version to add the HTML5 audio element and route decoding through Media Foundation. IE 5.5 to IE 8 did not support AAC. Microsoft has retired Internet Explorer 11, and Edge has replaced it, so the AAC notes here are kept for legacy QA scenarios only.

Note

Note: AAC playback breaks across older Firefox on Linux, the open-source Chromium build, and the Presto-era Opera. Test it on real browsers and OS with TestMu AI. Try TestMu AI free!

What are the AAC profiles?

AAC ships as a family of profiles that trade complexity for bitrate efficiency. Each profile uses the same MDCT core but adds tools on top, and browsers support a different subset.

  • AAC-LC (Low Complexity): The baseline profile and the default for iTunes, Apple Music, YouTube, and HLS streams. Every browser that supports AAC supports AAC-LC at bitrates from 96 kbps to 320 kbps. The MIME signature is audio/mp4; codecs=mp4a.40.2.
  • HE-AAC (High Efficiency AAC): Adds Spectral Band Replication (SBR) on top of AAC-LC to deliver near-AAC-LC quality at half the bitrate. Common in digital radio (DAB+, DRM) and adaptive streaming below 64 kbps. The MIME signature is audio/mp4; codecs=mp4a.40.5.
  • HE-AAC v2: Layers Parametric Stereo on top of HE-AAC for ultra-low bitrates from 24 to 48 kbps stereo. Used in mobile streaming on flaky networks. The MIME signature is audio/mp4; codecs=mp4a.40.29.
  • xHE-AAC (Extended HE-AAC): Operates from 12 kbps speech to 300 kbps music inside the same bitstream, with built-in MPEG-D DRC for loudness normalization. Safari on iOS, iPadOS, visionOS, and macOS decodes xHE-AAC through AVFoundation, and Chrome added xHE-AAC inside HLS. Firefox does not support xHE-AAC.
  • AAC-LD and AAC-ELD: Low-Delay profiles tuned for two-way communication. Latency drops to 20 ms (AAC-ELD) and 40 ms (AAC-LD), so video conferencing apps and FaceTime use these profiles. Browsers do not expose AAC-LD or AAC-ELD through the audio element.

What are the use cases of AAC?

AAC is the default audio codec for almost every modern streaming, broadcasting, and mobile workflow. It pairs with H.264 in MP4 video, ships as the audio track in HLS, and powers the largest music and podcast libraries on the web.

  • Music streaming and downloads: Apple Music, iTunes Store, YouTube Music, and SoundCloud serve AAC-LC by default at 256 kbps. Spotify falls back to AAC for browser playback and Apple devices, while keeping Ogg Vorbis for the desktop app.
  • HTTP Live Streaming (HLS): Apple HLS mandates AAC-LC for the audio track, packaged inside fMP4 or MPEG-TS segments. Every Safari device and every modern hls.js player decodes AAC the moment a manifest plays.
  • Web video with H.264: The MP4 video pipeline pairs H.264 video with AAC audio for the broadest browser reach. A single MP4 with H.264 + AAC plays in Chrome 12+, Edge 12+, Safari 4+, Firefox 22+, and IE 9+ without a fallback source.
  • Digital broadcasting: DVB-T2, ISDB-T, ATSC 3.0, and DAB+ all use AAC or HE-AAC for the audio carriage. Set-top boxes, smart TVs, and connected car radios decode AAC at the silicon level.
  • Bluetooth audio: AAC over A2DP is the default codec on iPhone, iPad, and Mac when paired with AirPods, and a common option on Android phones for AAC-capable headphones at about 250 kbps stereo.
  • Podcasts and voice apps: Apple Podcasts, Spotify Podcasts, and Pocket Casts encode at 64 to 128 kbps HE-AAC. Voice notes in WhatsApp, iMessage, and Telegram also wrap audio in AAC inside an MP4 container.
...

AAC vs MP3

AAC and MP3 are both lossy audio codecs in the MPEG family, but AAC is the modern successor. The table below sums up the differences across compression behavior, browser reach, and licensing.

DimensionAACMP3
StandardMPEG-4 Part 3 (ISO/IEC 14496-3) and MPEG-2 Part 7 (ISO/IEC 13818-7)MPEG-1 Part 3 (ISO/IEC 11172-3) and MPEG-2 Part 3 (ISO/IEC 13818-3)
File extensions.aac, .m4a, .mp4.mp3
MIME typesaudio/aac, audio/mp4audio/mpeg
Quality at 128 kbps stereoTransparent for most listenersAudible artefacts on cymbals and reverb
Sweet spot for low bitrateHE-AAC at 32 to 64 kbps stereoQuality drops below 128 kbps
Maximum channels48 plus 16 LFE5.1 surround
Maximum sample rate96 kHz48 kHz
Browser supportEvery modern browser, Firefox via OSEvery browser natively, including IE 9+
Patent statusLicensed via Via LA, royalties for encoder vendorsPatents expired, royalty-free

What are the known issues with AAC?

AAC plays cleanly across the major browser engines, so the painful edge cases land on Firefox on bare Linux, the open-source Chromium build, profile mismatches, and licensing rules for self-built encoders.

  • Firefox on Linux without GStreamer fails silently: Firefox 22+ on Linux relies on GStreamer for AAC decoding. A minimal distribution build (Alpine, Tails, custom Debian) often ships without gst-libav or fdk-aac, so AAC files play silently or hit an unsupported codec error. The fix is to install gst-libav or serve a fallback Opus or MP3 source.
  • Open-source Chromium ships without AAC: The Chromium source tree compiles without proprietary codecs, so Chromium nightlies, Ungoogled Chromium, and some Linux distribution builds (Fedora, Arch) cannot decode AAC. Production Google Chrome and Microsoft Edge ship the codec; the bare Chromium fork does not. Test against the Chromium build your audience uses.
  • HE-AAC and HE-AAC v2 fall back to AAC-LC on old browsers: Browsers without an SBR-aware decoder play HE-AAC as AAC-LC at half the intended sample rate, which sounds tinny. Edge 12 to 18 on Windows 7 and Chrome on Linux without a Media Foundation pipeline both hit this path. Verify the SBR upmix in Safari before shipping HE-AAC streams.
  • xHE-AAC support is fragmented: Only Safari and Chrome (HLS only) decode xHE-AAC. Firefox and the open-source Chromium build refuse the bitstream entirely. Fall back to AAC-LC for portability or serve xHE-AAC behind a content-negotiation header.
  • Patent licensing applies to encoders, not playback: Distributing AAC content does not require a license, but shipping a homegrown AAC encoder or decoder does. Via LA charges manufacturer royalties on encoder, decoder, and end-user product units. Most teams use a licensed FFmpeg build or the OS encoder rather than rolling their own.
  • ADTS (.aac) versus MP4 (.m4a) container quirks: Some servers serve raw ADTS as audio/mpeg, which Safari rejects. Safari on iOS prefers AAC inside MP4 (.m4a) for progressive download, while Chrome accepts both. Set the MIME type to audio/aac for ADTS streams and audio/mp4 for .m4a files.
  • Internet Explorer cannot decode HE-AAC: IE 9 to IE 11 decodes AAC-LC inside MP4, but Media Foundation on Windows 7 has no SBR upmix, so HE-AAC plays as AAC-LC at half rate. Microsoft has retired IE 11, so move IE-dependent intranet apps to Edge.

In my experience, the trickiest failure is the Firefox-on-Linux gap. An AAC podcast that works on Chrome, Safari, and Firefox on macOS silently fails on a stock Fedora or Alpine box because the user has Firefox but no GStreamer codec plugin. Probe the user agent server-side and route Linux Firefox visitors to an Opus or MP3 fallback, or your Linux analytics will show a flat zero on play events.

Confirm AAC support across browsers by pasting the snippet below into the DevTools console.

// Paste this into the DevTools console to confirm the browser plays AAC.
const audio = document.createElement("audio");
const aacMimeTypes = [
  "audio/aac",
  'audio/mp4; codecs="mp4a.40.2"', // AAC-LC inside MP4
  'audio/mp4; codecs="mp4a.40.5"', // HE-AAC inside MP4
  'audio/mp4; codecs="mp4a.40.29"' // HE-AAC v2 inside MP4
];

for (const mime of aacMimeTypes) {
  const result = audio.canPlayType(mime);
  console.log(mime, "->", result || "(empty: not supported)");
}

// 'probably' or 'maybe' means the browser will try to decode AAC.
// An empty string means the engine has no AAC decoder for that profile or container.
...

Citations

All AAC version numbers and platform notes in this guide come from these primary sources:

Author

Prince Dewani is a Community Contributor at TestMu AI, where he manages content strategies around software testing, QA, and test automation. He is certified in Selenium, Cypress, Playwright, Appium, Automation Testing, and KaneAI. Prince has also presented academic research at the international conference PBCON-01. He further specializes in on-page SEO, bridging marketing with core testing technologies. On LinkedIn, he is followed by 4,300+ QA engineers, developers, DevOps experts, tech leaders, and AI-focused practitioners in the global testing community.

Open in ChatGPT Icon

Open in ChatGPT

Open in Claude Icon

Open in Claude

Open in Perplexity Icon

Open in Perplexity

Open in Grok Icon

Open in Grok

Open in Gemini AI Icon

Open in Gemini AI

Copied to Clipboard!
...

3000+ Browsers. One Platform.

See exactly how your site performs everywhere.

Try it free
...

Write Tests in Plain English with KaneAI

Create, debug, and evolve tests using natural language.

Try for free

Frequently asked questions

Did you find this page helpful?

More Related Hubs

TestMu AI forEnterprise

Get access to solutions built on Enterprise
grade security, privacy, & compliance

  • Advanced access controls
  • Advanced data retention rules
  • Advanced Local Testing
  • Premium Support options
  • Early access to beta features
  • Private Slack Channel
  • Unlimited Manual Accessibility DevTools Tests