AudioUtils
Format Guide

Opus Format: Complete Technical Reference

Opus is the most advanced open audio codec in wide use today. Standardized by the IETF in 2012, it was engineered for the internet — able to shift seamlessly from narrow-band telephone speech to full-bandwidth stereo music, all in a single royalty-free codec with latency low enough for live conversation. If you have made a voice or video call in a browser, used Discord, or sent a WhatsApp voice note, you have almost certainly heard Opus. This is the complete technical reference: how its two-codec design works, why it beats MP3, AAC, and Vorbis at low and medium bitrates, how it achieves real-time latency, where its hardware-support gaps still are, and exactly when to choose it.

History of the Opus Codec

Opus was born from merging two very different codecs. SILK, developed by Skype, was a speech codec built for the unpredictable conditions of internet voice calls. CELT, from the Xiph.Org Foundation, was a low-latency music codec. Rather than pick one, the IETF's codec working group combined them, letting a single codec cover the full range from telephone speech to hi-fi stereo. Opus was published as IETF RFC 6716 in September 2012, with Mozilla, Xiph, Skype (by then part of Microsoft), and Broadcom among the contributors. The decisive moment for adoption was WebRTC: the standard for real-time communication in browsers made Opus a mandatory-to-implement audio codec, which forced Chrome, Firefox, and every other browser to ship it. From there Opus spread into the infrastructure of modern communication — Discord, WhatsApp, Signal, Telegram, Zoom, Google Meet — and into streaming, where YouTube serves much of its audio as Opus. It is, uniquely, both an IETF internet standard and a Xiph open codec, patent-free and royalty-free under a BSD-style license.

Technical Specifications

Opus operates across an unusually wide range: bitrates from 6 kbps up to 510 kbps, and internal sample rates of 8, 12, 16, 24, and 48 kHz (it always decodes to 48 kHz). It supports mono, stereo, and up to 255 channels, including surround. The codec chooses automatically between three internal modes — SILK for speech, CELT for music, and a hybrid that blends both — based on the content and bitrate, with no manual switching required. Frame sizes are configurable from 2.5 ms to 60 ms; the 20 ms default balances efficiency and latency, and shorter frames cut latency for real-time use. Algorithmic latency can be as low as about 5 ms in the lowest-delay configuration, versus the 100+ ms typical of MP3 and AAC — the key reason Opus dominates live communication. On efficiency, Opus at 64 kbps clearly beats 128 kbps MP3 for music, and at 96 kbps it matches or exceeds 128 kbps AAC. It also supports variable, constant, and constrained-VBR rate control, plus dynamic bitrate changes mid-stream for adapting to network conditions.

SILK, CELT, and Hybrid Modes

Opus's defining trick is that it is really two codecs in one, plus a bridge between them. SILK mode is a linear-predictive speech codec (inherited from Skype) that models the human vocal tract, making it extraordinarily efficient for voice — intelligible speech at bitrates as low as 6-12 kbps. CELT mode is a transform (MDCT) codec suited to music and general audio, with low latency and good quality across the spectrum. Hybrid mode runs SILK for the lower frequencies and CELT for the higher ones simultaneously, which is how Opus handles wideband speech and mixed content cleanly. The encoder selects the mode automatically based on signal content and target bitrate: a podcast of pure speech will lean on SILK and stay tiny, while a music track engages CELT for full fidelity. This is why a single Opus stream can carry a phone call and a music track equally well — something MP3 and AAC, designed primarily for music, never did as gracefully. The mode switching is seamless and inaudible to the listener.

How Opus Achieves Low Latency

Latency — the delay between sound going in and coming out — is where Opus separates itself from every music-first codec. MP3 and AAC were designed for stored files, so they use long analysis windows and lookahead that add well over 100 ms of algorithmic delay; that is fine for playback but ruinous for conversation, where anything above roughly 150-200 ms of round-trip delay makes people talk over each other. Opus was built for real-time from the start. Its frame sizes go down to 2.5 ms, its lookahead is minimal, and in its lowest-delay CELT configuration the algorithmic latency is around 5 ms. Combined with its ability to change bitrate on the fly and tolerate packet loss (via forward error correction and packet-loss concealment), this makes Opus ideal for lossy, jittery internet connections. That engineering is precisely why WebRTC mandated it and why Discord, Zoom, Signal, and the rest use it for live audio: no other widely-supported codec combines this latency, this resilience, and this efficiency.

Bitrate and Quality

Opus is remarkably good at low and medium bitrates, which is its whole reason for existing. For music, useful reference points: 32 kbps is listenable; 64 kbps is genuinely good and beats 128 kbps MP3; 96 kbps is near-transparent for most listeners and rivals 128 kbps AAC; 128 kbps is transparent for nearly everyone; and 160-192 kbps is effectively indistinguishable from lossless for critical listening. For speech the numbers are startling — 24 kbps produces natural, full-sounding voice, and even 16 kbps is perfectly intelligible, far beyond what MP3 or AAC manage at those rates. Opus uses VBR by default, spending bits where the content demands, and can also run constrained VBR or CBR for streaming pipelines that need predictable rates. Because it is so efficient, Opus lets you cut file sizes and bandwidth substantially versus MP3 at equal quality — a meaningful saving for podcast apps, streaming services, and anyone paying for delivery bandwidth. The practical guidance: 96-128 kbps for music, 24-48 kbps for voice, and let VBR do the rest.

Opus vs AAC, MP3, and Vorbis

In formal blind listening tests, Opus at 96 kbps is rated equivalent to AAC at 128 kbps and MP3 at roughly 160 kbps, and at 64 kbps it beats 128 kbps MP3 for music. For speech, Opus is in a class of its own at low bitrates. Versus Vorbis — its own Xiph predecessor — Opus is better at nearly every bitrate and adds low latency Vorbis lacks, which is why new projects should prefer Opus over Vorbis. So on pure merit Opus wins comfortably against MP3, AAC, and Vorbis. The catch is entirely about reach: MP3 plays on literally everything, AAC has Apple and the broadcast/streaming industry behind it with hardware decoding in most chips, and both are accepted by music stores and distributors that still will not take Opus. Opus's advantage is efficiency and openness; its disadvantage is that a lot of consumer hardware plays it only in software, or not at all. For anything you control end to end — a web app, a call system, your own streaming player — Opus is the clear technical choice. For handing a file to an unknown device, MP3 or AAC remains safer.

What Opus Cannot Do

Opus's weaknesses are about ecosystem, not sound. It is not universally supported on consumer hardware — many car stereos, older MP3 players, some smart TVs, and budget Bluetooth devices do not decode Opus files, and where they do it is often software-only, since dedicated hardware Opus decoders are far less common than for MP3 and AAC. Music distribution platforms and stores largely still require MP3 or AAC, not Opus, so it is a poor delivery format for selling downloads. Apple support arrived relatively late (Safari 14.1 in 2021; system support from iOS 11), so very old Apple devices miss it. The container situation causes confusion: Opus files may carry a .opus extension or live inside an .ogg or WebM container, and users conflate Opus with OGG Vorbis. Opus is lossy, so it is unsuitable for archival or mastering — use FLAC or WAV. And while decode is cheap, it is slightly more CPU-intensive than MP3 on very constrained devices. None of these are quality problems; they are reach-and-habit problems.

Device and Software Compatibility

Software support for Opus is now excellent. Chrome, Firefox, Edge, and Opera play it natively in the browser; Safari added support in version 14.1 (2021). Android has decoded Opus since Android 5.0 (2014), and iOS since iOS 11 (2017). Windows 10 version 1903 and later play Opus without extra codecs, and VLC plays it everywhere. The communications world runs on it: Discord, WhatsApp, Telegram, Signal, Zoom, and Google Meet all use Opus for voice, and WebRTC mandates it. FFmpeg encodes and decodes Opus on every platform, and foobar2000, MPD, and most open-source players support it. YouTube serves and accepts Opus in WebM containers. The gaps are in dedicated consumer hardware — car head units, older portable players, some TVs and receivers — where support is inconsistent and often absent. So Opus is a safe bet anywhere software decoding is available (phones, computers, browsers, apps) and a risky bet for standalone hardware you do not control.

Opus in Voice, Video, and Streaming

Opus is the invisible standard behind modern real-time audio. Because WebRTC requires it, every browser-based voice and video call — Google Meet, Zoom on the web, countless support-chat widgets — carries audio in Opus. Discord built its entire voice infrastructure on it, prized for low latency and graceful behavior under packet loss. Messaging apps use it for voice notes: WhatsApp, Telegram, and Signal all encode short voice messages as Opus, which is why they stay tiny yet sound clear. On the streaming side, YouTube delivers a large share of its audio as Opus inside WebM, choosing it for bandwidth efficiency, and it is common in podcast and radio streaming pipelines where operators control the player. What unites these uses is control of the endpoints: when the sender and receiver are both software you influence — a browser, an app, a server — Opus's efficiency and latency make it the obvious pick. Its absence from the hardware download-and-sideload world is the only reason it has not displaced MP3 for plain file distribution.

The .opus and .ogg Container Story

A frequent source of confusion is how Opus is packaged. Opus is a codec, not a container, so it must live inside a wrapper. The standard standalone container is Ogg, and Opus-in-Ogg files conventionally use the .opus extension — but some tools also produce .ogg files that actually contain Opus, not Vorbis, which is why people mix the two up. Opus also travels inside WebM and Matroska (.webm, .mkv) containers, which is how YouTube and many web players deliver it, and inside the CAF container on Apple platforms. The extension therefore does not reliably tell you the codec: a .ogg file might hold Vorbis or Opus, and Opus audio might arrive as .opus, .webm, or .mkv. For practical purposes, treat .opus as 'Opus in Ogg,' expect web-delivered Opus inside WebM, and rely on a real decoder (or a tool like FFmpeg) rather than the extension to know what you have. When converting, target .opus for a clean standalone Opus file.

When to Use Opus

Use Opus wherever you control the playback endpoint and want the best quality per kilobit. It is the right choice for web applications and browser-based audio, voice and video calling infrastructure, podcast and streaming apps that ship their own player, voice messaging, and web games — anywhere low bitrate and high quality must coexist. It is also an excellent format for a personal library on modern phones and computers, beating MP3 on size and quality. Avoid Opus when handing files to unknown or older hardware — car stereos, cheap players, legacy devices — where MP3 or AAC is safer, and avoid it for selling downloads through stores that require MP3/AAC. Never use Opus for archival or mastering; keep those in FLAC or WAV and encode Opus only at the delivery stage. For a brand-new project with modern endpoints, Opus is the strongest open codec available.

How to Convert To and From Opus

Converting to Opus is how you produce small, high-quality files for the web, apps, and voice — encode from a lossless WAV or FLAC master at 96-128 kbps for music or 24-48 kbps for speech, and let VBR optimize the rest. From WAV or FLAC to Opus is the ideal path because you start at full quality and encode once. From MP3 or AAC to Opus is lossy-to-lossy and adds a second generation of artifacts, so only do it when you specifically need Opus and no lossless source exists. Converting from Opus to MP3 or AAC is the common fix for Opus's hardware-reach problem — when you need a file to play on a car stereo or older device, transcode to MP3, accepting a small quality loss. From Opus to WAV gives an editable PCM copy, though it cannot recover detail the Opus encoder discarded. AudioUtils runs all of these conversions entirely in your browser with FFmpeg WebAssembly — no upload, no signup, no install, and your files never leave your device.