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.
Opus 1.5 is the first release to make extended use of ML in the encoder and
decoder. You can read all the details in this release demo page.
In summary, major changes since 1.4 include:
Significant improvement to packet loss robustness using Deep Redundancy (DRED)
Improved packet loss concealment through Deep PLC
Low-bitrate speech quality enhancement down to 6 kb/s wideband
Improved x86 (AVX2) and Arm (Neon) optimizations
Support for 4th and 5th order ambisonics
In addition to the improvements above, this release includes many minor bug fixes.
Opus 1.5.1 fixes the meson build that was broken in 1.5.
Opus 1.5
is the first release to make extended use of ML in the encoder and
decoder. You can read all the details in this release demo page.
In summary, major changes since 1.4 include:
Significant improvement to packet loss robustness using Deep Redundancy (DRED)
Improved packet loss concealment through Deep PLC
Low-bitrate speech quality enhancement down to 6 kb/s wideband
Improved x86 (AVX2) and Arm (Neon) optimizations
Support for 4th and 5th order ambisonics
In addition to the improvements above, this release includes many minor bug fixes.
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.