Opus Interactive Audio Codec

Overview

Opus is a totally open, royalty-free, highly versatile audio codec. Opus is unmatched for interactive speech and music transmission over the Internet, but is also intended for storage and streaming applications. It is standardized by the Internet Engineering Task Force (IETF) as RFC 6716 which incorporated technology from Skype's SILK codec and Xiph.Org's CELT codec.

Technology

Opus can handle a wide range of audio applications, including Voice over IP, videoconferencing, in-game chat, and even remote live music performances. It can scale from low bit-rate narrowband speech to very high quality stereo music. Supported features are:

  • Bit-rates from 6 kb/s to 510 kb/s
  • Sampling rates from 8 kHz (narrowband) to 48 kHz (fullband)
  • Frame sizes from 2.5 ms to 60 ms
  • Support for both constant bit-rate (CBR) and variable bit-rate (VBR)
  • Audio bandwidth from narrowband to fullband
  • Support for speech and music
  • Support for mono and stereo
  • Support for up to 255 channels (multistream frames)
  • Dynamically adjustable bitrate, audio bandwidth, and frame size
  • Good loss robustness and packet loss concealment (PLC)
  • Floating point and fixed-point implementation

You can read the full specification, including the reference implementation, in RFC 6716. An up-to-date implementation of the Opus standard is also available from the downloads page.

News

  • Version 1.1-alpha released

    21 December, 2012

    This is an alpha release for the upcoming 1.1 version. Compared to 1.0.2, it includes quality improvements, optimizations, bug fixes, as well as an experimental speech/music detector for mode decisions. All the fixes and improvements from 1.0.2 are also in this release. Quality improvements include unconstrained VBR, a bitrate boost for tonal frames, and improvements to tf estimation, transient detection and dynamic allocation. The code is available from the downloads page.

  • Version 1.0.2 released

    6 December, 2012

    Opus 1.0.2 fixes an out-of-bounds read that could be triggered by a malicious Opus packet causing an integer wrap-around in the padding code. Considering that the packet would have to be at least 16 MB in size and that no out-of-bounds write is possible, the severity is very low. Other changes include fixes and improvements to the PLC and hybrid mode quality improvements. As usual, this release is fully compliant with the Opus specification. The code is available from the downloads page.

  • Opus Standardized as RFC6716, Versions 1.0.0 and 1.0.1 Are Available

    11 September, 2012

    It's official, Opus has now been standardized by the IETF as RFC 6716. Along with the RFC are the first stable releases. Version 1.0.0 includes exactly the same source code as the reference implementation in the RFC. Version 1.0.1 also includes minor fixes that were made after the RFC was "frozen". Both releases are available from the downloads page.

  • Third Release Candidate for Opus 1.0.1

    4 September, 2012

    This third release candidate for 1.0.1 has documenation and minor portability fixes as part of the final polish before release. Source code is available from the downloads page.

  • Second Release Candidate for Opus 1.0.1

    15 August, 2012

    This second release candidate for 1.0.1 includes documentation fixes and a Windows build system. Source code is available from the archived downloads page.

  • Release Candidates for Opus 1.0.0 and 1.0.1

    8 August, 2012

    Release candidates for the upcoming 1.0.0 and 1.0.1 releases are now available. Expect the final 1.0.0 release in the next few weeks along with the final Opus RFC. Version 1.0.1 will be released at the same time and includes minor fixes that did not make it to the RFC. Source code is available from the downloads page.

  • WebRTC Adopts Opus as MTI Codec

    27 July, 2012

    Participants to the IETF rtcweb working group have accepted (through typical IETF strong consensus) a proposal to select both Opus and G.711 as mandatory-to-implement (MTI) audio codecs. This means that all browsers that implement that standard will have to ship Opus support.

  • Opus Ships in Firefox 15 (beta)

    19 July, 2012

    The latest Firefox beta now ships with support for Opus.

  • Opus Approved by the IETF

    2 July, 2012

    The IETF has just approved Opus for publication as an RFC. This should happen in the next few weeks, along with release 1.0.