AudioUtils

Opus vs AAC: Which Codec Is Better?

Opus vs AAC compared on quality, bitrate efficiency, latency, and compatibility. Find out which codec wins for streaming, web, and mobile audio.

Opus and AAC are the two strongest modern lossy audio codecs. AAC has the ecosystem advantage from being Apple's default since the iPod era. Opus has the technical advantage from being designed a decade later with hindsight on what AAC got wrong. They overlap in some use cases (web audio, streaming, mobile) and stay in their own lanes for others (Apple distribution stays AAC; WebRTC stays Opus). This is the head-to-head.

Quick Verdict

  • Real-time communication, web audio, low-bitrate voice: Opus wins decisively.
  • Apple ecosystem distribution, music streaming uploads, broadcast: AAC wins on compatibility and entrenchment.
  • General music playback at 192+ kbps: effectively tied; both are transparent.
  • Lowest possible bitrate that's still listenable: Opus, by a wide margin.

Codec Design

AAC (Advanced Audio Coding), standardized in 1997 as part of MPEG-2 and refined in MPEG-4, is a pure-MDCT transform codec. The encoder splits audio into frequency bands using a Modified Discrete Cosine Transform, applies psychoacoustic modeling, quantizes the coefficients, and Huffman-codes the result. Profiles include AAC-LC (Low Complexity, the standard), HE-AAC (High Efficiency, with spectral band replication for low-bitrate work), and HE-AAC v2 (adds parametric stereo).

Opus, standardized in 2012 as RFC 6716 by the IETF, is a hybrid. It combines two underlying codecs: SILK (developed by Skype, optimized for voice and speech) and CELT (based on the same MDCT transforms as Vorbis, optimized for music). The encoder picks one or the other or both based on content — speech-only bands use SILK, music bands use CELT, and many tracks use a mixed-mode encode. This hybrid is why Opus wins at both voice and music in a single codec.

Bitrate Efficiency

The single biggest difference. Opus is dramatically more efficient at low and medium bitrates:

  • At 32 kbps: Opus voice is highly intelligible and clean. AAC-LC at 32 kbps is unlistenable for music; HE-AAC v2 helps but still falls behind.
  • At 64 kbps: Opus music is good and voice is excellent. AAC-LC produces audible artifacts; HE-AAC is competitive.
  • At 96 kbps: Opus is transparent for most music and most listeners. AAC at 96 kbps is decent but not transparent.
  • At 128 kbps: Both are effectively transparent for typical material. The gap closes.
  • At 192 kbps and above: Tied. Both produce audio indistinguishable from source for nearly all listeners.

For streaming services that target 64-96 kbps for cellular delivery, Opus produces materially better audio. For services that target 192-256 kbps (Apple Music, Spotify), the codec choice matters less than the bitrate.

Latency

Opus was designed for real-time communication; AAC was not.

  • Opus algorithmic delay: 5-66.5 ms depending on frame size. The default 20 ms frame gives ~26.5 ms total latency.
  • AAC-LC algorithmic delay: ~46 ms minimum.
  • HE-AAC delay: ~120-150 ms (worse due to spectral band replication windowing).

For voice calls, video conferencing with interactive audio, web games, and any context where round-trip latency below 100 ms matters, Opus is the only practical choice. For music playback, podcasts, and pre-recorded streaming, latency is irrelevant.

Compatibility

AAC plays everywhere:

  • All Apple devices (iOS, iPadOS, macOS, Apple TV, AirPods).
  • Windows 10+ and 11 natively.
  • Android natively since 4.0.
  • All major browsers via HTML5 audio (with .m4a or .aac files).
  • YouTube, Spotify, Apple Music, Tidal, Amazon Music — all accept and serve AAC.
  • Cars, Bluetooth speakers, smart TVs from roughly 2010 onward.

Opus has strong but gappier support:

  • All major browsers (Chrome since 2014, Firefox since 2012, Safari 17+ for file playback, all Edge).
  • Android 5.0+.
  • iOS 17+ for file-based Opus playback in Safari; earlier iOS for WebRTC only.
  • Most streaming platforms accept Opus internally for delivery (YouTube uses Opus for some streams) but do not accept Opus for upload.
  • Older car stereos, pre-2020 Bluetooth speakers, hardware MP3 players: limited or no Opus support.

For distribution where you cannot control playback (uploading to a streaming service, sending music to a stranger), AAC is safer. For controlled delivery (your own web app, your own podcast feed served to known clients), Opus is the better technical choice.

Where Each Lives in 2026

AAC is the format of choice for:

  • Apple Music, iTunes Store, Apple Podcasts.
  • YouTube's audio track in MP4 video delivery.
  • Most music streaming services for the higher-quality tier.
  • Bluetooth audio (the AAC profile on AirPods and many premium headphones).
  • Broadcast TV and digital radio in some regions.

Opus is the format of choice for:

  • WebRTC: Google Meet, Discord, WhatsApp calls, Jitsi, Zoom alternatives.
  • Web audio applications, web games using Web Audio API.
  • YouTube's audio-only WebM streams (when downloaded, those are Opus).
  • Web-distributed podcast variants targeting modern browsers.
  • Open-source voice and audio chat platforms.

Converting Between Them

Both directions are technically possible but always involve transcoding (lossy → lossy):

  • AAC → Opus: useful for web delivery. Use AAC to MP3 as an intermediate or convert to WAV first via AAC to WAV, then encode Opus from the lossless intermediate to avoid stacking.
  • Opus → AAC: less common; useful for Apple distribution from an Opus source.

The cleanest path is always to encode both from a common lossless source (WAV or FLAC) when possible, rather than transcoding from one lossy format to another.

Decision Tree

  • Need to deliver to iPhone users via the App Store, Apple Music, or AirPods? AAC.
  • Building a web app, web game, or browser-based audio tool? Opus.
  • Real-time voice or video calls? Opus, no question.
  • Music streaming service uploads (Spotify, Apple Music, Tidal)? AAC or lossless; they reject Opus on ingestion.
  • Self-hosted podcast feed? AAC (.m4a) for compatibility, or MP3 for the broadest audience. Opus only if you control all clients.
  • Lowest practical bitrate for voice? Opus at 16-24 kbps.

For format-level deeper dives, What is Opus covers the SILK+CELT hybrid design and RFC 6716 in detail. What is AAC covers the codec family including HE-AAC and AAC-LC. The Opus vs MP3 comparison covers Opus against the older incumbent and AAC vs MP3 for streaming covers AAC's main rivalry.