总览
Opus是一款完全开放的功能广泛的音频编解码器。Opus在互联网上的交互式语音和音乐传输方面无可匹敌,但也适用于存储和流媒体应用程序。它由Internet工程任务组(IETF)标准化为RFC 6716 ,该标准融合了Skype的SILK编解码器和Xiph.Org的CELT编解码器中的技术。
技术
Opus可以处理各种音频应用程序,包括IP语音,视频会议,游戏内聊天,甚至是远程直播音乐表演。它可以从低比特率的窄带语音扩展到高质量的立体声音乐。支持的特性有:
- 从6kb/s到510kb/s的比特率;
- 从8kHz(窄带)到48kHz(全频带)的采样率;
- 从2.5毫秒到60毫秒的帧长;
- 支持固定比特率(constant bitrate,CBR)和可变比特率(variable bitrate,VBR);
- 窄带到宽带音频带宽;支持语音和音乐;
- 支持单声道和立体声;
- 最多支持255个通道(多流帧, multistream frames)动态自适应比特率、音频带宽和帧长;
- 良好的稳定性和丢包隐藏;
- 可进行浮点和定点实现。
代码下载
(1)Opus库本身:
git clone https://git.xiph.org/opus.git
(2)Opus-tools
Opus-tools包含了一组将Opus与wav进行编解码的工具。
git clone https://gitlab.xiph.org/xiph/opus-tools/
(3)Opusfile
Opusfile提供了一个高级API,用于在.opus文件中进行解码和查找,类似于libvorbisfile为Vorbis提供的功能。
git clone https://git.xiph.org/opusfile.git
(4)libopusenc
Libopusenc提供了用于创建.opus文件和流的高级API。
git clone https://git.xiph.org/libopusenc.git
性能比较
下图说明了各种编解码器的质量与比特率的关系。它总结一系列听觉测试的结果,然后(当没有数据时)显示出轶事证据(由于样本比较小,没有完善的科学实验证明,这种证据有可能是不可靠的)。它总体上具有代表性,但是绝对不建议尝试以特定比特率提取任何精确值。