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 bitrate narrowband
speech to very high quality stereo music. Supported features are:
Bitrates 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 bitrate (CBR) and variable bitrate (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.
The opusfile library provides seeking, decode, and playback
of Opus streams in the Ogg container (.opus files) including
over http(s) on posix and windows systems.
opusfile depends on libopus and libogg.
The included opusurl library for http(s) access depends on
opusfile and openssl.
Fix an issue where the seek algorithm could be confused
by stream data changing between reads.
Clean up compiler and scan-build warnings.
Avoid use of the deprecated ftime() function
which has Y2038 problems.
Remove undefined behaviour memcpy(NULL) in op_read_native().
Visual Studio project files updated for libogg 1.3.4 library name change.
Various build systems updates.
Various integration and testing environment improvements.
This release is backward-compatible with the previous
release. We recommend all users upgrade.
Note that because of the removal of certificate store hooks
in openssl 1.1.1 and later, there are unfortunately no
supported versions of that library which can be used with
the code in opusurl to validate https responses against
the system certificate store on Windows. Using the system
default access to the certificate store on other platforms
works fine.
No Windows build is available for this release.
Developers should integrate the source code directly into their applications.
Programming documentation is available in tree and
online.
The library is functional, but there are likely issues
we didn’t find in our own testing. Please give feedback
in #opus on irc.libera.chat, opus@xiph.org, or at
gitlab.
This Opus 1.3.1
minor release fixes an issue with the analysis on files
with digital silence (all zeros), especially on x87 builds (mostly affects
32-bit builds). It also includes two new features:
A new OPUS_GET_IN_DTX query to know if the encoder is in DTX mode (last frame was either a comfort noise frame or not encoded at all)
A new (and still experimental) CMake-based build system that is eventually meant to replace the VS2015 build system (the autotools one will stay).
This Opus 1.3
major release again brings quality improvements, new features, and bug fixes.
You can read all the details in this release demo page.
Changes since 1.2.x include:
Improvements to the VAD and speech/music classification using an RNN
Support for ambisonics coding using channel mapping families 2 and 3
Improvements to stereo speech coding at low bitrate
Using wideband encoding down to 9 kb/s
Making it possible to use SILK down to bitrates around 5 kb/s