.OPUS Opus Audio
.opus

Opus Audio

Opus is the audio codec inside every WhatsApp voice message and browser video call — it delivers MP3 quality at half the file size. FileDex converts Opus to MP3, WAV, and FLAC in your browser, with no upload required.

Audio structure
OggS page header
OpusHead
OpusTags
audio packets
AudioLossyStreaming

Common questions

What is an Opus audio file?

Opus is a royalty-free audio codec standardized by the IETF in 2012 (RFC 6716). It combines two specialized engines — SILK for speech and CELT for music — that switch seamlessly per audio frame. An .opus file wraps Opus-encoded audio in an Ogg container. Opus is the mandatory audio codec for WebRTC, meaning every browser-based video call uses it.

What is the difference between Opus and MP3?

Opus delivers equivalent audio quality at roughly half the bitrate of MP3. At 64 kbps, Opus sounds as good as 128 kbps MP3. Opus also handles speech far better than MP3, which was designed purely for music. MP3's advantage is universal hardware support — every device plays MP3, while Opus requires modern software.

How do I convert a WhatsApp voice message to MP3?

WhatsApp voice messages are encoded in Opus format. Drop the .opus file onto FileDex to convert it to MP3 directly in your browser — no upload, no server, no data leaves your device. The conversion decodes the Opus audio and re-encodes it as MP3 for universal playback.

Can I play Opus files on my phone?

Android supports Opus natively since version 5.0. On iPhone, Opus playback requires a third-party app like VLC. All modern mobile browsers (Chrome, Firefox, Safari) decode Opus natively for web audio. WhatsApp plays Opus voice messages on all platforms without any additional app.

Why does Opus sound better than MP3 at the same file size?

Opus uses a hybrid architecture that adapts to content. For speech, the SILK engine uses predictive coding optimized for voice frequencies. For music, the CELT engine uses MDCT transforms. MP3 uses only MDCT for everything, wasting bits on content types it was not designed for.

What makes .OPUS special

Every video call
Mandatory in every browser
RFC 7874 mandates Opus for WebRTC. Meet, Zoom, Discord, and Teams all use it — over 2 billion monthly users rely on it.
Two engines in one
SILK + CELT hybrid switching
SILK handles speech, CELT handles music. The encoder switches between them per frame — a podcast transitions seamlessly.
Half the bitrate
64 kbps Opus ≈ 128 kbps MP3
Double-blind tests confirm: 64 kbps Opus matches 128 kbps MP3. At 96 kbps, Opus sounds identical to the original.
WhatsApp's secret codec
Every voice message is Opus
WhatsApp encodes voice messages at 24 kbps Opus in Ogg — the same codec behind every browser video call.

6 kbps Speech to 510 kbps Music. How Is That One Codec?

Two competing audio technologies — one built for voice calls, one built for music — merged in 2012 into a single codec spanning 6 kbps narrowband speech to 510 kbps stereo music. Opus (RFC 6716) combines SILK, originally developed by Skype for speech frequencies at low bitrates, with CELT, created by Xiph.Org for full-bandwidth music using the Modified Discrete Cosine Transform. The result handles everything from narrowband speech at 6 kbps to fullband stereo at 510 kbps. No other standardized codec spans this 6–510 kbps range.

Continue reading — full technical deep dive

Opus switches encoding modes per frame. The encoder analyzes each 20-millisecond audio frame and selects SILK-only for speech, CELT-only for music, or Hybrid mode where SILK handles frequencies below 8 kHz while CELT covers 8–20 kHz. A podcast alternating between a host speaking and background music transitions between engines without audible artifact.

The quality advantage is measurable. Controlled double-blind listening tests using the MUSHRA methodology show Opus at 64 kbps stereo matching MP3 quality at 128 kbps — the same perceived audio quality at half the file size. At 96 kbps, Opus reaches transparency for most content, meaning listeners cannot distinguish compressed from original. For speech at 16 kbps, the gap widens further — Opus delivers intelligible voice where MP3, AAC, and Vorbis produce speech-obscuring artifacts. Codec quality is one thing. Ubiquity is another — and Opus became the web's default audio codec faster than anyone predicted.

Every Video Call in Your Browser Uses Opus. Why?

RFC 7874, published in 2016, designates Opus as the Mandatory to Implement audio codec for WebRTC — the technology powering browser-based voice and video calls. Every compliant WebRTC implementation must include an Opus decoder, which means Chrome, Firefox, Safari, and Edge all decode Opus natively.

Google Meet, Zoom's web client, Microsoft Teams in the browser, Discord, and every other WebRTC-based platform transmits audio as Opus. Over 2 billion people use WebRTC monthly, and every one of them relies on Opus without knowing the codec's name. The IETF codec working group chose the hybrid approach over selecting either SILK or CELT alone because no single existing codec performed well across both speech and music at WebRTC's required bitrates.

Browser adoption happened gradually — Firefox added Opus in 2012, Chrome in 2013, Safari in 2017 — but today every major browser on every platform supports it, making Opus the most widely deployed audio codec on the web. Browser adoption is about the codec. The file on disk is a different question — because Opus isn't technically a file format at all.

Opus Isn't Actually a File Format. Then What's Inside a .opus File?

The distinction between Opus and an .opus file matters. Opus is the codec — the algorithm that compresses audio. An .opus file wraps Opus-compressed packets inside an Ogg container, the same container format used by Vorbis and FLAC. The container handles framing, seeking, and metadata; the codec handles compression.

Every .opus file begins with four bytes spelling OggS (hex 4F 67 67 53) at offset 0. The first Ogg page payload contains the OpusHead identification header at offset 0x1C: an 8-byte magic signature, version number, channel count, pre-skip samples the player must discard, original input sample rate, output gain in Q7.8 fixed-point decibels, and channel mapping family. These seven fields are all fixed-length, a single read of 19 bytes reveals the channel count, sample rate, and output gain of the audio stream.

The second Ogg page contains OpusTags — metadata stored as Vorbis Comment key-value pairs in UTF-8. Unlike MP3's ID3 tags, which were retrofitted onto a format without native metadata support, OpusTags are part of the Ogg specification from the start. Audio data follows in subsequent pages, each containing Opus packets encoding 2.5 to 60 milliseconds of sound. The file format details matter less than where people encounter them — and most people encounter Opus files without ever knowing the format's name.

Every WhatsApp Voice Message Is Opus. You Never Knew. Why?

WhatsApp encodes every voice message as Opus inside an Ogg container at approximately 24 kbps — MP3 needs 64+ kbps for comparable speech quality. When you record and send a voice message, WhatsApp captures microphone audio, encodes it with Opus's SILK mode optimized for speech, wraps it in Ogg, and transmits the file. The recipient's app decodes it.

WhatsApp is far from alone. Telegram voice messages use Opus. Signal voice messages use Opus. Discord voice channels stream Opus in real time. WhatsApp, Telegram, Signal, and Discord all use Opus for voice, but because apps encode and decode without user intervention, most users never learn the format's name.

The moment Opus becomes visible is when you try to use a voice message outside its original app. Export a WhatsApp voice message and you get an .opus file that older car stereos, some hardware MP3 players, and Windows versions before 10 (1903) cannot play. Converting to MP3 at 192 kbps preserves voice quality while ensuring universal playback on any device from the last two decades. FileDex handles this by converting Opus to MP3, WAV, or FLAC in the browser, with no file upload required.

.OPUS compared to alternatives

.OPUS compared to alternative formats
Formats Criteria Winner
.OPUS vs .MP3
Quality at 64 kbps stereo
Opus at 64 kbps achieves quality comparable to MP3 at 128 kbps — double the efficiency. The SILK/CELT hybrid adapts to content type per frame, while MP3's fixed MDCT architecture wastes bits on speech.
OPUS wins
.OPUS vs .MP3
Device compatibility
MP3 plays on every device ever made — car stereos, old phones, hardware players. Opus requires a 2012+ browser or software decoder. For maximum compatibility, MP3 still wins.
MP3 wins
.OPUS vs .AAC
Speech encoding quality
Opus's SILK mode is purpose-built for speech, delivering clear voice at 16-24 kbps. AAC is a music codec that struggles below 64 kbps. For voice calls and podcasts, Opus is dramatically better.
OPUS wins
.OPUS vs .AAC
Ecosystem lock-in
AAC is mandatory in Apple devices and iTunes. Opus is mandatory in WebRTC browsers. Neither is universal — AAC dominates hardware, Opus dominates the web.
Draw

Technical reference

MIME Type
audio/opus
Magic Bytes
4F 67 67 53 OggS container. Opus header identified within Ogg stream.
Developer
Xiph.Org / IETF
Year Introduced
2012
Open Standard
Yes — View specification
000000004F676753 OggS

OggS container. Opus header identified within Ogg stream.

Binary Structure

An Opus file uses the Ogg container format. The file begins with the Ogg capture pattern 'OggS' (4F 67 67 53) at offset 0. The first Ogg page payload contains the OpusHead identification header: an 8-byte magic signature ('OpusHead'), version (must be 1), channel count, pre-skip samples (encoder delay to discard), original input sample rate (informational), output gain in Q7.8 fixed-point dB, and channel mapping family. The second Ogg page contains OpusTags with Vorbis Comment-style metadata. Subsequent pages contain compressed Opus audio packets.

OffsetLengthFieldExampleDescription
0x00 4 bytes Ogg Capture Pattern 4F 67 67 53 OggS — identifies the Ogg container format
0x05 1 byte Header type 02 Beginning of stream flag (BOS)
0x1C 8 bytes OpusHead magic 4F 70 75 73 48 65 61 64 OpusHead — identifies Opus codec within Ogg
0x24 1 byte Version 01 Opus encapsulation version — must be 1
0x25 1 byte Channel count 02 Number of audio channels (1=mono, 2=stereo)
0x26 2 bytes Pre-skip 38 01 Samples to discard at start (312 = 6.5ms at 48kHz, little-endian)
0x28 4 bytes Input sample rate 80 BB 00 00 Original recording rate in Hz (48000, little-endian) — informational only
2007CELT development starts at Xiph.Org — MDCT-based low-latency audio codec2009Skype submits SILK speech codec to IETF as proposed standard2010IETF codec working group merges SILK and CELT into hybrid Opus codec2012RFC 6716 published — Opus standardized as IETF Proposed Standard2016RFC 7874 mandates Opus as the required audio codec for WebRTC2018Opus 1.3 released with neural network-based speech quality improvements
Convert Opus to MP3 ffmpeg
ffmpeg -i input.opus -c:a libmp3lame -b:a 192k output.mp3

Decodes the Opus bitstream from its Ogg container and re-encodes to MP3 at 192 kbps. Universal compatibility — plays on every device.

Convert Opus to lossless WAV ffmpeg
ffmpeg -i input.opus output.wav

Decodes Opus to uncompressed PCM WAV. No quality loss beyond the original Opus encoding. Useful for editing in audio workstations.

Inspect Opus file metadata ffmpeg
ffprobe -show_streams -show_format input.opus

Displays codec info, sample rate, channel count, bitrate, duration, and OpusTags metadata without decoding the audio.

OPUS MP3 transcode lossy libmp3lame (LGPL) via `-q:a` (VBR, 0=best to 9) or `-b:a` (CBR). Common targets: `-q:a 2` ≈ 190 kbps VBR, `-b:a 192k` CBR. Transcoding is lossy→lossy — Opus's hybrid SILK/CELT architecture (RFC 6716) has no MP3 equivalent, so bitrate parity requires listening tests per source material.
OPUS AAC transcode lossy Native FFmpeg `aac` encoder or `libfdk_aac` (higher quality, GPL-incompatible — requires `--enable-nonfree`). libfdk_aac VBR scale is `-vbr 1-5`. Output containers: MP4/M4A or raw ADTS. Transcoding is lossy→lossy; OpusHead pre-skip samples are discarded per RFC 7845.
OPUS WAV transcode lossless PCM s16le decode at 48 kHz — Opus's internal rate per RFC 6716 §2, so no resampling artifact. OpusHead pre-skip samples are discarded per RFC 7845 §5.1. Output remains as lossy as the source Opus; WAV adds no quality, only removes compression.
OPUS FLAC transcode lossless libflac via `-compression_level` (0-12, default 5). Lossless encoding of the decoded PCM — preserves every sample but cannot recover Opus-stage lossy artifacts. FLAC compresses 30-70% smaller than uncompressed PCM (Xiph.org). Seekable frame structure suits archival and editing workflows.
OPUS OGG transcode lossy libvorbis via `-q:a` (scale -1.0 to 10.0); reference encoder maps `-q:a 4` to 128 kbps, `-q:a 5` to 160 kbps, `-q:a 6` to 192 kbps. Both formats share the Ogg container (RFC 3533) but the audio stream is re-encoded — structural remux is not possible.
OPUS M4A transcode lossy AAC-LC in MPEG-4 Part 14 container via `libfdk_aac` or native `aac` encoder. MP4 uses atom-based metadata (moov/udta/meta/ilst) — NOT ID3v2. OpusTags (Vorbis Comment format, RFC 7845 §5.2) must be remapped to iTunes atoms; most transcoders handle this automatically.
OPUS WMA transcode lossy FFmpeg `wmav2` encoder writing into the ASF container. Microsoft Windows Media Audio — proprietary codec standardized for the Windows Media Framework stack. Broad decoder support on Windows; limited on non-Microsoft platforms without a separate codec pack or FFmpeg runtime.
OPUS AIFF transcode lossless PCM s16be (big-endian) in IFF-based container — AIFF derives from Electronic Arts' IFF, while WAV derives from RIFF (little-endian). Byte order is the primary difference; sample data is otherwise identical to the equivalent WAV. File size matches WAV at the same sample rate.
OPUS PCM transcode lossless Raw interleaved PCM samples — no container, no chunk headers. Default FFmpeg output is s16le at the input sample rate (48 kHz for decoded Opus per RFC 6716). Consumers must know sample rate, channel count, and byte order out-of-band — used for I2S hardware and embedded DSP.
LOW

Attack Vectors

  • Buffer overflow in Opus decoder (CVE-2017-0381)
  • Out-of-bounds read (CVE-2013-0899)

Mitigation: FileDex processes Opus audio entirely in your browser using the native browser decoder or FFmpeg WebAssembly — no file upload, no server processing. The browser sandbox isolates all decoding operations from your system.

FFmpeg tool
Universal audio/video tool with native Opus encoding and decoding support
opus-tools tool
Official reference tools for Opus — opusenc, opusdec, and opusinfo
libopus library
Reference C library implementing the Opus codec (RFC 6716)
MediaInfo tool
Cross-platform tool for inspecting audio/video metadata including Opus stream details
VLC tool
Universal media player with native Opus playback on all platforms