Testing

Opus Audio Codec: Browser Support, Features, Containers

Opus plays in Chrome 33+, Edge 14+, Firefox 15+, Opera 20+, Safari 11+ on macOS and iOS, and Samsung Internet 5+. Learn the codec, containers, limits.

Author

Prince Dewani

May 6, 2026

Opus is an open, royalty-free audio codec from the Xiph.Org Foundation that the IETF standardized as RFC 6716, combining the SILK speech codec with the CELT music codec. It plays in Chrome 33+, Edge 14+, Firefox 15+, Opera 20+, Safari 11+, and Samsung Internet 5+, while Internet Explorer and Opera Mini never added support.

This guide covers what Opus is, the browsers that support it, the key features, the containers that carry it, common use cases, and the known issues.

What is Opus?

Opus is a lossy audio codec that handles speech and music in a single bitstream. The Xiph.Org Foundation built it on the SILK speech codec from Skype and the CELT music codec from Xiph, and the IETF published it as RFC 6716. The standard MIME type is audio/ogg with codecs=opus.

Which browsers does Opus support?

Every modern browser engine plays Opus inside the HTML5 audio element on desktop and mobile, with global support sitting around 96.7% of all web traffic, while Internet Explorer and Opera Mini are the only holdouts.

Loading browser compatibility data...

Opus compatibility in Chrome

Chrome supports Opus from Chrome 33 on Windows, macOS, Linux, ChromeOS, and Android. Chrome 4 to 32 did not ship an Opus decoder, since the codec only landed when libopus matured in the Chromium media stack. Chrome plays Opus inside Ogg, WebM, and MP4 containers through the audio element and through Media Source Extensions.

Opus compatibility in Edge

Microsoft Edge supports Opus from Edge 14 on Windows. Pre-Chromium EdgeHTML 14 to 18 used the Windows Media Foundation pipeline, while Chromium-based Edge 79+ on Windows, macOS, and Linux shares the Opus decoder with Chrome. Edge for Android plays Opus through the same Chromium media stack.

Opus compatibility in Firefox

Firefox supports Opus from Firefox 15 on Windows, macOS, and Linux, and from the same Firefox release on Android. Mozilla bundles a software Opus decoder, which means the codec works on every desktop and mobile build without an OS-level dependency or hardware decoder.

Opus compatibility in Safari

Safari support for Opus is split between iOS and macOS. Safari 11 to 18.3 played Opus only when packaged in a CAF file on macOS High Sierra and iOS 11. Safari 18.4 on macOS Sequoia 15.4, iOS 18.4, iPadOS 18.4, and visionOS 2.4 added Opus inside Ogg containers, which closed the long-standing gap with Chrome and Firefox. Opus inside MP4 still does not play on Safari's audio element.

Opus compatibility in Opera

Opera supports Opus from Opera 20 on Windows, macOS, and Linux, the build that tracked Chromium 33. Opera 9 to 19 did not ship an Opus decoder. Opera Mobile on Android adds Opus from Opera Mobile 80, while Opera Mini does not play Opus on any version because Opera Mini renders pages on a server-side proxy that strips the audio element.

Opus compatibility in Samsung Internet

Samsung Internet supports Opus from version 5.0 on Galaxy phones and tablets, since the browser ships the Chromium media stack. The Opus decoder is on by default, so Galaxy users do not need to flip a setting in the app. Opus inside WebM and Opus inside Ogg both work on Samsung Internet 5.0 and later.

Opus compatibility in Android Browser

Chrome for Android supports Opus from Chrome 33, so any current Android phone or tablet running Chrome plays Opus inside the HTML5 audio element. Firefox for Android also supports Opus from Firefox 15. The Android System WebView used by in-app browsers tracks Chrome and inherits Opus support automatically.

Opus compatibility in Internet Explorer

Internet Explorer does not support Opus in any version from IE 5.5 to IE 11. The Trident engine never added an Opus decoder, and IE relied on the older DirectShow stack which had no public Opus filter. Microsoft has retired Internet Explorer 11, so move Opus-dependent web apps to Chromium-based Edge or Chrome for any new work.

Note

Note: Opus playback breaks across older Safari, Internet Explorer, and Opera Mini. Test it on real browsers and OS with TestMu AI. Try TestMu AI free!

What are the key features of Opus?

Opus pairs voice-and-music versatility with a wide bitrate range and the lowest latency of any general-purpose audio codec. The headline features cover compression behavior, bitrate flexibility, sampling rates, latency, and licensing.

  • Voice-and-music hybrid: SILK and CELT cover speech and music in one bitstream. Opus picks SILK for low-bitrate speech, CELT for music, or a hybrid mode for mixed content, switching per frame as the input changes.
  • Bitrate range from 6 kbps to 510 kbps: Constant and variable bitrate encoding spans narrowband speech at 6 kbps up to fullband stereo music at 510 kbps. The encoder can change bitrate per frame, which is useful for adaptive streaming and packet-loss recovery.
  • Five sampling rates from 8 kHz to 48 kHz: Opus profiles span narrowband at 8 kHz, medium band at 12 kHz, wideband at 16 kHz, super-wideband at 24 kHz, and fullband at 48 kHz, covering everything from VoIP voice to studio music.
  • Algorithmic delay of 26.5 ms: The default end-to-end delay is 26.5 ms, the lowest of any general-purpose codec. Trading off quality drops the delay to 5 ms, which is why WebRTC, live conferencing, and networked music performance standardized on Opus.
  • Up to 255 channels: The bitstream supports mono, stereo, and multistream layouts up to 255 channels with one LFE channel, which covers immersive audio formats and ambisonics for VR and AR experiences.
  • Royalty-free and open source: Opus is fully open under a BSD-style license, and the IETF standardized the bitstream as RFC 6716. The reference encoder libopus and the decoder are public, with no patent licensing required for shipping a player or an encoder.

Which containers can carry Opus on the web?

Opus does not stand alone, it always rides inside a container that the browser parses before handing the bitstream to the decoder. The web supports four containers for Opus, and each one has a different MIME type and a different browser footprint.

  • Ogg Opus, audio/ogg with codecs=opus: The native container for Opus on the web. Chrome, Firefox, Edge, Opera, and Safari 18.4+ play Ogg Opus through the audio element. The standard file extension is .opus, and Ogg Opus is the format the IETF specified alongside the codec in RFC 7845.
  • WebM Opus, audio/webm with codecs=opus: WebM 1.0 made Opus a required audio codec, so every Chromium browser, Firefox, and Safari 11+ plays WebM Opus alongside VP8 or VP9 video. WebM Opus is the default for MediaRecorder output in Chrome and Firefox.
  • MP4 Opus, audio/mp4 with codecs=opus: ISO-BMFF added an Opus sample entry, and Chrome, Firefox, and Edge play Opus in MP4 fragments through Media Source Extensions. Safari does not yet play Opus in MP4 on the audio element.
  • CAF Opus, audio/x-caf: Apple's Core Audio Format wrapped Opus on macOS High Sierra and iOS 11 before Safari shipped Ogg Opus support. Modern web stacks should prefer Ogg or WebM, with CAF as a fallback only for visitors on Safari versions below 18.4.

What are common use cases for Opus?

Opus replaced fragmented audio formats across real-time, streaming, and downloadable workloads. Its low latency and wide bitrate range make it the default voice codec for WebRTC and a strong choice for music streaming, voice notes, and HTML5 audio.

  • WebRTC voice and video calls: Opus is the mandatory audio codec for WebRTC. Every browser implementation of getUserMedia and RTCPeerConnection encodes microphone audio with Opus on the wire, so Google Meet, Zoom Web, Jitsi, and Whereby all run Opus by default.
  • Voice over IP and chat apps: Discord, WhatsApp, Microsoft Teams, and Telegram encode voice with Opus. Discord runs Opus over UDP for sub-100 ms latency on its real-time voice channels, and WhatsApp uses Opus for voice notes and calls across more than 1.5 billion users.
  • Music streaming with low bandwidth: YouTube serves Opus to compatible clients for music and video, and SoundCloud and Spotify low-bitrate tiers use Opus. The 5 ms minimum latency suits live DJ streams and karaoke apps that cannot tolerate buffer delay.
  • HTML5 audio playback: Opus inside Ogg or WebM is a strong default for podcast and music sites that want lossless-feel quality at half the bitrate of MP3. The audio element decodes Opus natively in every modern browser, with MP3 as the legacy fallback for IE and Opera Mini visitors.
...

What are the known issues with Opus across browsers?

Opus plays cleanly in every modern browser engine, so the painful edge cases land on legacy Safari, Firefox on Linux for very long files, recording in Safari, and a small number of misconfigured server pipelines.

  • Safari 11 to 18.3 only handled Opus in CAF: Macs and iPhones on those builds cannot decode Ogg Opus, and the audio element falls back to source list iteration. Ship Opus inside CAF for Safari user agents below 18.4, or fall back to AAC for that segment.
  • Firefox on Linux truncates long Ogg Opus files: Mozilla bug 1810378 documents that 64-bit Linux builds truncate Opus files past roughly 12 hours 25 minutes, and seeking misbehaves on long audiobooks. Split long files at the 12-hour mark for Linux Firefox visitors, or remux into WebM where the bug does not appear.
  • Safari still cannot record Ogg Opus: WebKit bug 238546 and follow-ups report inconsistent behavior, and MediaRecorder.isTypeSupported('audio/ogg; codecs=opus') returns false on Safari. Recording flows that target Opus must downgrade to AAC on Safari or use a server-side encoder.
  • Opus in MP4 is missing on Safari: Chrome, Firefox, and Edge play Opus inside MP4 through Media Source Extensions, but Safari rejects the MIME type on the audio element. Adaptive players targeting Safari need to package Opus inside Ogg or WebM rather than MP4.
  • Internet Explorer never supported Opus: IE 5.5 to IE 11 cannot decode Opus, and the audio element falls back to the next source. Provide an MP3 or AAC source so legacy IE intranet users still hear audio, even though Microsoft has retired IE 11.
  • Opera Mini renders pages on a server proxy: Opera Mini strips the audio element on its server and replaces it with a download link, so Opus playback never starts on a low-end Opera Mini device. The fallback is a native player launched from a tap.

In my experience, the trickiest failure is the Safari recording gap. A WebRTC chat app that records calls as Ogg Opus on Chrome and Firefox will silently fail on Safari, since MediaRecorder reports false for the codec. Always probe canRecordType before allocating a recorder, and route Safari users to an AAC fallback or your call analytics will show silent dropouts.

...

Citations

All Opus version numbers and platform notes in this guide come from these primary sources:

Author

Prince Dewani is a Community Contributor at TestMu AI, where he manages content strategies around software testing, QA, and test automation. He is certified in Selenium, Cypress, Playwright, Appium, Automation Testing, and KaneAI. Prince has also presented academic research at the international conference PBCON-01. He further specializes in on-page SEO, bridging marketing with core testing technologies. On LinkedIn, he is followed by 4,300+ QA engineers, developers, DevOps experts, tech leaders, and AI-focused practitioners in the global testing community.

Open in ChatGPT Icon

Open in ChatGPT

Open in Claude Icon

Open in Claude

Open in Perplexity Icon

Open in Perplexity

Open in Grok Icon

Open in Grok

Open in Gemini AI Icon

Open in Gemini AI

Copied to Clipboard!
...

3000+ Browsers. One Platform.

See exactly how your site performs everywhere.

Try it free
...

Write Tests in Plain English with KaneAI

Create, debug, and evolve tests using natural language.

Try for free

Frequently asked questions

Did you find this page helpful?

More Related Hubs

TestMu AI forEnterprise

Get access to solutions built on Enterprise
grade security, privacy, & compliance

  • Advanced access controls
  • Advanced data retention rules
  • Advanced Local Testing
  • Premium Support options
  • Early access to beta features
  • Private Slack Channel
  • Unlimited Manual Accessibility DevTools Tests