Opus Interactive Audio Codec
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.
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
Versions 1.1 released
5 December, 2013
After more than two years of development, we have released Opus 1.1. This includes:
- new analysis code and tuning that significantly improves encoding quality, especially for variable-bitrate (VBR),
- automatic detection of speech or music to decide which encoding mode to use,
- surround with good quality at 128 kbps for 5.1 and usable down to 48 kbps, and
- speed improvements on all architectures, especially ARM, where decoding uses around 40% less CPU and encoding uses around 30% less CPU.
Versions 1.1-rc3 released
3 December, 2013
This is the third and likely last release candidate for 1.1. It fixes several bugs in the fixed-point build. Floating point is unaffected. The code is available from the downloads page.
Versions 1.1-rc2 released
27 November, 2013
This second release candidate fixes an alignment issue on ARMv5E and improves the Neon optimizations. Other platforms are unaffected. The code is available from the downloads page.
Versions 1.1-rc released
26 November, 2013
We're getting closer to the final 1.1 with this new release that further improves surround encoding quality. It also includes better tuning of surround and stereo for lower bitrates. The complexity has been reduced on all CPUs, but especially ARM, which now has Neon assembly for the encoder. At last, there are a few bugfixes. The code is available from the downloads page.
Versions 1.1-beta and 1.0.3 released
11 July, 2013
Following up on the alpha, here's now the beta release for version 1.1. Monty wrote a nice demo page showing off all the improvements in 1.1. As for version 1.0.3 it includes a backport of the new 1.1 surround API (see the demo) as well as some minor bugfixes. The code is available from the downloads page.
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.