Opus Support for WebRTC

Opus audio codec logo

As we announced during the beta cycle, Firefox now supports the new Opus audio format. We expect Opus to be published as RFC 6716 any day now, and we’re starting to see Opus support pop up in more and more places. Momentum is really building.

What does this mean for the web?

Keeping the Internet an open platform is part of Mozilla’s mission. When the technology the Web needs doesn’t exist, we will invest the resources to create it, and release it royalty-free, just as we ask of others. Opus is one of these technologies.

Mozilla employs two of the key authors and developers, and has invested significant legal resources into avoiding known patent thickets. It uses processes and methods that have been long known in the field and which are considered patent-free. As a result, Opus is available on a royalty-free basis and can be deployed by anyone, including other open-source projects. Everyone knows this is an incredibly challenging legal environment to operate in, but we think we’ve succeeded.

Why Opus is important?

The Opus support in the <audio> tag we’re shipping today is great. We think it’s as good or better than all the other codecs people use there, particularly in the voice modes, which people have been asking for for a long time. But our goals extend far beyond building a great codec for the <audio> tag.

Mozilla is heavily involved in the new WebRTC standards to bring real-time communication to the Web. This is the real reason we made Opus, and why its low-delay features are so important. At the recent IETF meeting in Vancouver we achieved “strong consensus” to make Opus Mandatory To Implement (MTI) in WebRTC. Interoperability is even more important here than in the <audio> tag. If two browsers ship without any codecs in common, a website still has the option of encoding their content twice to be compatible with both. But that option isn’t available when the browsers are trying to talk to each other directly. So our success here is a big step in bringing interoperable real-time communication to the Web, using native Web technologies, without plug-ins.

Illustration of the quality of different codecs

Opus’s flexibility to scale to both very low bitrates and very high quality, and do all of it with very low delay, were instrumental in achieving this consensus. It would take at least six other codecs to satisfy all the use-cases Opus does. So try out Opus today for your podcasts, music broadcasts, games, and more. But look out for Opus in WebRTC coming soon.

About Timothy B. Terriberry

Timothy B. Terriberry is a long-time volunteer for the Xiph.Org foundation, working on codecs such as Theora, Vorbis, CELT, and Opus. He has been contributing to Mozilla's media support since 2008 and hacking on WebRTC since 2010.

More articles by Timothy B. Terriberry…


  1. Bernd

    I hope Microsofts counter proposal doesn’t get in the way..? (They called it something that pronounces like “See You, WebRTC”, right?.. :-/ )

    August 28th, 2012 at 09:31
    1. Ralph Giles

      Microsoft representatives have stated support for Opus in WebRTC. The counter-proposal is about how the javascript api should work.


      August 28th, 2012 at 10:32
  2. njn

    This is awesome.

    August 28th, 2012 at 21:31
  3. Fabio


    it says opus is disabled by default in FF 15. I suppose this is not true since it looks enabled here.

    August 31st, 2012 at 23:22
    1. derf

      Oops! Thanks, I’ll make sure that gets updated.

      September 3rd, 2012 at 00:46
  4. pd

    When you first announced Opus I tried converting some .wavs downloaded from Radiohead. I specified 256 CBR and the files came out smaller than mp3 at lower bitrates. Most importantly, the sound was brilliant.

    Second most importantly, great name! This codec should be the magnum opus of all audio codecs and is! Completely appropriate.

    I just wish the plethora of free media players out there would ramp up support for the codec quick smart.

    September 12th, 2012 at 08:42

Comments are closed for this article.