Opus Audio Codec — Complete Format Guide
What Is Opus?
Opus is a modern, open-source, royalty-free audio codec developed by the Xiph.Org Foundation and Mozilla, standardised by the IETF as RFC 6716 in September 2012. It is designed to be the universal audio codec — excelling at voice communication, music streaming, and everything between, across a wide bitrate range from 6 kbps to 510 kbps, at latencies as low as 2.5 milliseconds.
Opus replaced CELT and SILK as the codec of choice for:
- WebRTC — real-time browser-to-browser audio and video communication
- Discord — voice chat across all platforms
- Zoom, Microsoft Teams, Google Meet — enterprise video conferencing
- Mumble, TeamSpeak — gaming voice chat
- YouTube — audio in WebM containers (VP9 + Opus)
- Firefox, Chrome, Edge, Safari 16.4+ — native HTML5 audio support
Dual-Mode Architecture: SILK + CELT
Opus's core innovation is a hybrid codec built from two fundamentally different engines:
SILK (Skype Internet Low-delay Codec)
Originally developed by Skype (acquired by Microsoft), SILK is optimised for speech signals:
- Based on CELP (Code-Excited Linear Prediction) — models the human vocal tract as a time-varying linear filter
- Extremely efficient for voiced speech: LPC analysis extracts spectral envelope; residual is coded with algebraic codebooks
- Operates at 6–40 kbps
- Excellent for low-latency, bandwidth-constrained voice calls
- Native 8 kHz (NB), 12 kHz (MB), 16 kHz (WB), and 24 kHz (SWB) modes
CELT (Constrained Energy Lapped Transform)
Developed by Xiph.Org, CELT is optimised for music and generic audio:
- Based on MDCT (Modified Discrete Cosine Transform) — same mathematical foundation as AAC, MP3, and Vorbis
- Operates at 32–512 kbps with extremely low latency (5 ms algorithmic delay)
- Provides full audio bandwidth up to 20 kHz
- Particularly efficient for music, wideband voice, and mixed content
Hybrid Mode (SILK + CELT)
For bitrates and content where neither SILK nor CELT alone is optimal, Opus combines both:
- SILK codes low-frequency bands (fundamental pitch and formants)
- CELT codes high-frequency bands (harmonics, overtones, transients)
- The combination provides superior speech quality at medium bitrates (16–32 kbps)
The Opus codec switches between these modes automatically based on bitrate, content analysis, and latency requirements — transparent to the application.
Bitrate Modes and Quality
Opus operates in three rate control modes:
Constant Bitrate (CBR)
Every frame uses exactly the specified bitrate. Used in streaming where buffer guarantees are required (RTP/RTCP, WebRTC). Slightly less efficient than VBR at a given average bitrate.
Variable Bitrate (VBR)
Bits are allocated dynamically per frame based on signal complexity. Simple silences use few bits; complex music uses many. More efficient than CBR at the same perceived quality.
Constrained VBR (CVBR)
VBR with a maximum bitrate ceiling. Used where bitrate must not exceed a bandwidth cap (e.g., mobile data plans).
Quality at Different Bitrates
Opus is remarkably efficient across an extraordinary bitrate range:
| Bitrate | Mode | Appropriate Content |
|---|---|---|
| 6–8 kbps | SILK | Voice-only, narrowband (intelligible but limited) |
| 8–16 kbps | SILK | Voice wideband (good speech, phone quality) |
| 16–32 kbps | SILK/CELT hybrid | High-quality voice; music with artefacts |
| 32–48 kbps | CELT | Music (noticeable but acceptable artefacts) |
| 64 kbps | CELT | Good music quality; comparable to MP3 128 kbps |
| 96 kbps | CELT | Very good; exceeds MP3 192 kbps |
| 128 kbps | CELT | Excellent; exceeds AAC 192 kbps |
| 160–256 kbps | CELT | Near-transparent for most listeners |
| 320+ kbps | CELT | Transparent; archival quality |
Key comparison: Opus at 64 kbps achieves quality comparable to MP3 at 128 kbps — 50 % bitrate savings.
Low Latency: The Streaming Advantage
Opus's minimum algorithmic latency of 2.5 milliseconds (using 2.5 ms frames) is orders of magnitude lower than other codecs:
| Codec | Algorithmic Delay | Use for Real-Time Communication |
|---|---|---|
| Opus | 2.5–26.5 ms | Yes — designed for it |
| AAC-LC | ~80–100 ms | Limited; noticeable echo in calls |
| HE-AAC | ~200–400 ms | No — too much delay |
| MP3 | ~50–100 ms | Limited; echo issues |
| Vorbis | ~60 ms | Marginal |
This low latency makes Opus uniquely suitable for duplex voice communication (calls, gaming, conferencing) where codec delay contributes to echo and "talking over each other" problems.
Ogg-Opus Container
.opus files store Opus audio in an Ogg container (the same framing used by Vorbis). The file uses Vorbis Comment metadata (same as FLAC) for tags:
R128_TRACK_GAIN=-573 (ReplayGain normalisation value)
TITLE=Track Name
ARTIST=Artist Name
ALBUM=Album Title
R128 gain tags enable ReplayGain normalisation without re-encoding — playback software applies a post-decode gain adjustment to match loudness targets (EBU R128 standard).
WebM and WebRTC Containers
Beyond Ogg-Opus, Opus audio appears in:
- WebM — Google's open video container for web; VP8/VP9/AV1 video + Opus audio; used natively by YouTube WebM streams
- Matroska (MKV) — full support; excellent for archiving with VP9 or AV1 video
- RTP/SRTP — packet-based real-time transport for WebRTC, SIP, and other voice protocols
Browser and Platform Support (2025)
| Platform | Status | Notes |
|---|---|---|
| Chrome / Chromium | Full | Since Chrome 25 (2013) |
| Firefox | Full | Since Firefox 15 (2012) |
| Edge | Full | Chromium-based |
| Safari / iOS | Full | Since Safari 16.4 / iOS 16.4 (2023) |
| Android | Full | Since Android 4.4 (API 19) |
| VLC | Full | All platforms |
| ffmpeg | Full | Encode and decode |
| Discord | Native codec | Voice communications |
| Zoom / Teams | Core codec | Voice/video conferencing |
Comparison: Opus vs. Other Codecs
| Feature | Opus | AAC-LC | MP3 | Vorbis |
|---|---|---|---|---|
| Royalty-free | Yes | No | Expired | Yes |
| Min latency | 2.5 ms | ~80 ms | ~50 ms | ~60 ms |
| Quality at 64 kbps | Excellent | Good | Fair | Good |
| Voice optimised | Yes (SILK) | Limited | No | No |
| Music optimised | Yes (CELT) | Yes | Yes | Yes |
| Browser support | Near-universal | Near-universal | Limited | Firefox/Chrome |
| WebRTC standard | Yes | No | No | No |
Converting Opus Files
Opus → MP3: For hardware players without Opus support; convert via ffmpeg or KaijuConverter; note generation loss from transcoding Opus → AAC: Better compatibility on Apple devices; some quality loss from transcoding Opus → WAV/FLAC: Decode to PCM for audio editing; preserves Opus artefacts in lossless container FLAC/WAV → Opus: Optimal path; encode from lossless source to avoid transcoding artefacts; 96–128 kbps Opus for high quality archival
Opus Adoption Recommendations
For new projects requiring compressed audio:
- Voice/VoIP/gaming: Opus at 32–64 kbps — better than all alternatives
- Podcast/speech distribution: Opus at 48–64 kbps — excellent quality, smaller than AAC
- Music streaming (web): Opus at 96–128 kbps — superior to AAC at equivalent bitrate
- Music archival: FLAC (lossless) or Opus at 192+ kbps
- Apple ecosystem: AAC — Opus Safari support arrived in 2023 but AAC remains safer for older devices
Related conversions
Common video conversions that pair well with this guide: