What is Opus? The Open Audio Codec Explained
What is Opus? How the royalty-free IETF audio codec combines SILK and CELT, its 5 ms latency and WebRTC role, and how Videospan uses it for browser recording.
Opus is a royalty-free, open audio codec standardized by the IETF as RFC 6716 in 2012, designed to handle everything from narrowband speech to full-band stereo music across a single bitrate range of 6–510 kbps. It combines two coding technologies — one optimized for speech, one for low-latency music — and can operate with as little as 5 ms of algorithmic delay, roughly 20 times lower than AAC. Opus is mandatory-to-implement in WebRTC, which makes it the de facto standard for real-time audio on the web, and it matches or beats AAC quality at bitrates at and below 64 kbps.
That combination — low latency, resilient speech quality, and universal browser support — is why Opus sits at the very front of Videospan's pipeline. When a contributor records a take in their browser, from a home office or a hotel room, Opus is the codec carrying their voice. This guide explains how it works and why we build on it.
How Opus works
Opus's defining feature is its hybrid design: two distinct coding engines inside one codec, plus a mode that uses both at once.
- SILK is a speech coder derived from the codec Skype developed for its calls. It uses linear predictive coding (LPC) — modeling the vocal tract as a filter and transmitting the filter parameters plus a coded excitation signal. LPC is extremely efficient for speech at low bitrates but handles music poorly. SILK operates on 8, 12, or 16 kHz bandwidths.
- CELT (Constrained Energy Lapped Transform) is a low-latency music coder built on the MDCT. Unlike most transform codecs, CELT explicitly codes the energy envelope of each frequency band first and preserves the spectral shape of the original, which avoids the "birdies" artifacts other codecs produce on music. It supports full-band 48 kHz audio and very short frames.
- Hybrid mode runs both at once: SILK codes the frequencies below 8 kHz, CELT codes everything above. This is the mode Opus uses for mid-range bitrates where speech and music content coexist.
At runtime, the encoder chooses the mode and bandwidth automatically based on bitrate and content — a 16 kbps voice call runs SILK-only narrowband, a 128 kbps music stream runs CELT-only full-band, and a 32 kbps mixed stream runs hybrid. The decoder reconstructs the signal from whichever mode was used, and the bitstream can switch modes frame by frame without glitches.
The other half of the design is latency. Opus supports frame sizes from 2.5 ms to 60 ms. With a 2.5 ms frame and minimal look-ahead, total algorithmic delay drops to about 5 ms — low enough that the codec disappears inside the network jitter budget of a real-time call. AAC, by comparison, cannot get below roughly 100 ms.
Seeing the bandwidth cutoff
Like all perceptual codecs, Opus discards what you can't hear — but its cutoff is adaptive. At 96 kbps stereo, Opus typically retains the full 20 kHz band; at low bitrates it narrows bandwidth deliberately rather than letting artifacts creep in. The demo below shows a real spectrum with the Opus bandwidth line, illustrating how the codec spends bits only on the audible range.
How Videospan uses Opus
Opus is what our browser-based recording runs on. When someone records a take through our platform — an executive on a laptop, a customer spokesperson on hotel Wi-Fi — the capture path is the browser's real-time audio stack (WebRTC and MediaRecorder), and Opus is the codec that stack speaks natively. There is nothing to install and no codec negotiation to fail: every modern browser encodes Opus out of the box.
The networks contributors record on are the one variable we can't control, and Opus is built for exactly that. Its bitrate, bandwidth, and frame size adapt on the fly, so a congested connection degrades gracefully instead of ruining the take, and its speech-optimized SILK mode keeps voices intelligible at bitrates where other codecs fall apart.
The same low latency that powers calls matters for live and interactive formats: remote production and real-time sessions need codec delay measured in single-digit milliseconds, and Opus's ~5 ms floor is the only mainstream option that delivers it. For final delivery we hand off to AAC — but the quality of every finished video starts with how cleanly the original was captured, and that is Opus's job.
Opus vs AAC
Opus and AAC are comparable in quality at standard streaming bitrates but come from different eras and serve different primary roles.
| Opus | AAC | |
|---|---|---|
| Standardized | 2012, IETF RFC 6716 | 1997, MPEG-2/MPEG-4 |
| Design target | Interactive + general purpose | Broadcast and file/stream delivery |
| Architecture | Hybrid SILK (speech) + CELT (music) | MDCT transform codec |
| Bitrate range | 6–510 kbps | ~8–320 kbps (per channel pair) |
| Sample rates | 8–48 kHz | 8–96 kHz |
| Channels | Up to 255 | Up to 48 |
| Frame sizes | 2.5–60 ms | 21–43 ms (plus look-ahead) |
| Algorithmic delay | As low as 5 ms | ~100 ms or more |
| Quality at 64 kbps | Comparable to AAC | Comparable to Opus |
| Quality below 64 kbps | Better | Degrades (HE-AAC helps) |
| Licensing | Royalty-free | Patent pool (Via LA) |
| Native playback | All modern browsers; WebM/Ogg/fMP4 | Universal, including legacy devices |
| WebRTC | Mandatory-to-implement | Not used |
In blind listening tests run by the Xiph.Org Foundation and others, 64 kbps Opus is statistically comparable to ~96 kbps AAC-LC, and the gap widens further down. At 128 kbps and above, both are transparent for most listeners — the choice is about compatibility and latency, not quality.
Advantages
- Lowest latency of any mainstream codec. Frame sizes down to 2.5 ms and ~5 ms algorithmic delay make real-time conversation possible.
- Royalty-free. No patent pool, no license fees, no paperwork — the reference implementation is BSD-licensed open source.
- One codec for everything. SILK, CELT, and hybrid modes cover narrowband speech through full-band stereo music, switching seamlessly per frame.
- Best quality at low bitrates. Matches AAC at 64 kbps and clearly beats it below; intelligible speech at 12–16 kbps.
- Mandatory in WebRTC. Every browser that does real-time audio speaks Opus, guaranteeing interoperability.
- Adaptive by design. Bitrate, bandwidth, frame size, and mode can change on the fly — ideal for congested networks.
Limitations
- No legacy playback. Older devices, some smart TVs, and older Safari versions don't decode Opus natively; prerecorded video for a broad audience still needs an AAC track or an H.264/AAC fallback.
- Weaker container story for video. Opus lives naturally in WebM and Ogg; support in MP4 (fMP4) exists but is uneven across players and platforms.
- Not supported in HLS universally. Apple added Opus-in-HLS support, but only for newer OS versions and only in fMP4 segments — you can't rely on it the way you can AAC.
- Less benefit at high bitrates. Above ~128 kbps its efficiency edge over AAC largely disappears, so there's little reason to switch for premium music delivery.
When to use Opus
Use Opus whenever latency, low bitrates, or licensing matter more than universal device playback:
- Real-time and interactive audio. Video calls, live interviews, remote production, watch parties — anything built on WebRTC uses Opus by default, at 24–64 kbps for speech.
- Low-bitrate speech. Podcasts, voice notes, and talk-heavy streams sound clean at 32–48 kbps stereo where AAC-LC would be audibly degraded. 64–96 kbps handles stereo music well.
- Web-first playback. If your audience is on modern browsers and you're packaging in WebM, Opus is the natural audio track alongside VP9 or AV1 video.
- Cost-sensitive or open-source stacks. Royalty-free from end to end, with an excellent reference encoder (
libopus) in every ffmpeg build.
Encoding with ffmpeg:
# Real-time / WebRTC-style: Opus speech at 32 kbps in WebM
ffmpeg -i in.wav -c:a libopus -b:a 32k out.webm
# Music streaming: Opus stereo at 96 kbps
ffmpeg -i in.wav -c:a libopus -b:a 96k out.webmFor prerecorded video delivered to the widest possible audience — especially via HLS or to Apple devices — keep AAC as the primary track and treat Opus as an efficiency upgrade where you control the player.
If you're evaluating a video platform, ask how it captures audio from a contributor on hotel Wi-Fi. Browser-based recording lives or dies on the capture codec: a platform built on Opus inherits its network resilience and low-bitrate speech quality for free, while one that treats capture as an afterthought is betting your take on a connection it can't control. Ask what happens mid-recording when the network degrades — adaptive codecs ride it out, rigid ones lose the moment.
Glossary
- Psychoacoustics
The study of human sound perception. Opus's encoders use psychoacoustic analysis to decide what content is inaudible and how to shape coding noise.
- SILK
Opus's speech coding engine, derived from Skype's codec. It uses linear predictive coding (LPC) and is efficient for speech at low bitrates.
- CELT
Constrained Energy Lapped Transform. Opus's low-latency MDCT-based music engine, which codes the energy envelope of each band to preserve spectral shape.
- Hybrid mode
Opus operating mode where SILK codes frequencies below 8 kHz and CELT codes everything above, used at mid-range bitrates.
- MDCT
Modified Discrete Cosine Transform. The overlapping time-to-frequency transform used by CELT (and by AAC) to represent audio for quantization.
- Algorithmic delay
Latency inherent to a codec's frame structure and analysis window. Opus achieves ~5 ms with 2.5 ms frames; AAC is around 100 ms.
- Frame size
The duration of audio processed per coding frame. Opus supports 2.5–60 ms; shorter frames mean lower latency but slightly lower efficiency.
- RFC 6716
The IETF standard document (2012) that defines the Opus codec and its bitstream format.
- WebRTC
The browser standard for real-time communication. Opus is mandatory-to-implement for WebRTC audio.
- Bitrate
Bits per second of compressed audio. Opus spans 6–510 kbps; 64–96 kbps is typical for stereo streaming.
Frequently asked questions
Related
What is AAC? Advanced Audio Coding Explained
What is AAC (Advanced Audio Coding)? How the codec works, its profiles and bitrates, and how Videospan uses AAC as the delivery standard for every video.
Video Container Formats Explained: MP4 & WebM
Learn what video container formats are, how they differ from codecs, and when to use MP4 vs WebM — including fragmented MP4, the basis of CMAF streaming.