Opus Audio#

Overview#

Opus is a totally open, royalty-free, highly versatile audio codec standardized by the IETF as RFC 6716. It was designed to handle a wide range of audio applications, from low-bitrate speech to high-fidelity music, making it one of the most flexible audio codecs available today.

Opus uses a hybrid design that combines two underlying codecs:

  • SILK (from Skype) - Optimized for speech compression, providing excellent quality at low bitrates for voice communications

  • CELT (from Xiph.Org) - Optimized for music and general audio, delivering high-fidelity sound reproduction

The codec can seamlessly switch between these modes or blend them together depending on the audio content, ensuring optimal quality regardless of the source material.

Key Characteristics#

Feature

Specification

Bitrate range

6 kbps to 510 kbps

Sample rates

8 kHz, 12 kHz, 16 kHz, 24 kHz, 48 kHz

Frame sizes

2.5 ms, 5 ms, 10 ms, 20 ms, 40 ms, 60 ms

Channels

Mono, stereo, and up to 255 channels

Latency

As low as 5 ms (algorithmic delay)

Main Use Cases#

  • Voice over IP (VoIP) - WebRTC uses Opus as its mandatory audio codec

  • Video conferencing - Low latency and excellent speech quality

  • Streaming audio - Adaptive bitrate for varying network conditions

  • Storage - Typically stored in Ogg container as .opus files

Advantages#

  • Very low latency - Suitable for real-time communications

  • Excellent quality at low bitrates - Outperforms most codecs below 64 kbps

  • Dynamic adaptation - Seamlessly switches between speech and music modes

  • Royalty-free and open source - No licensing fees required

  • Superior compression - Better quality than MP3, AAC, and Vorbis at most bitrates

Opus was designed to replace both Speex (speech) and Vorbis (music) with a single codec that handles both equally well.

AVBlocks provides comprehensive support for Opus encoding and decoding, allowing you to:

  • Encode uncompressed PCM audio to Opus format

  • Decode Opus streams to uncompressed PCM audio

  • Work with various sample rates and channel configurations

Opus Encoding#

Opus Decoding#