OPUS编解码器简介

简介:

总览

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

性能比较

下图说明了各种编解码器的质量与比特率的关系。它总结一系列听觉测试的结果,然后(当没有数据时)显示出轶事证据(由于样本比较小,没有完善的科学实验证明,这种证据有可能是不可靠的)。它总体上具有代表性,但是绝对不建议尝试以特定比特率提取任何精确值。
opus_comparison
quality

相关文章
|
存储 编解码 安全
Opus从入门到精通(二):编解码器使用
opus_encoder_get_size()返回编码器状态要求的大小。注意,这段代码的未来版本可能改变大小,所以没有assuptions应该对它做出。编码器状态在内存中总是连续,复制它只要一个浅拷贝就足够了。使用opus_encoder_ctl()接口可以改变一些编码器的参数设置。所有这些参数都已有缺省值,所以只在必要的情况下改变它们。
2022 0
|
编解码 API 语音技术
Opus从入门到精通(七)Opus编码基础之认识声音
前面我们分析完Opus的编解码api使用,封装原理等,接下来我们准备分析Opus编码原理.Opus编码是一个复杂的工作,我们需要做一些基本铺垫,包括认识声音,压缩编码基础.认识音频有助于我们了解音频特征,不仅对语音有助于我们理解编码技术,同时在语音识别,TTS等场景提供帮助
897 0
Opus从入门到精通(七)Opus编码基础之认识声音
|
Web App开发 编解码 资源调度
在阿里云直播解决方案中,当使用ARTC协议观看直播并进行清晰度切换时出现画面卡顿或马赛克现象,可能存在以下几种原因
【6月更文挑战第30天】阿里云直播中,ARTC协议下清晰度切换出现卡顿或马赛克可能由网络带宽、缓冲策略、转码效率、播放器解码、协议特点及服务器资源调度引起。解决措施包括优化网络、智能切换算法、播放器与服务器优化。通过监控和日志分析定位问题,参照官方最佳实践进行优化。
604 1
|
网络协议
DHCP服务详解
DHCP服务详解
930 0
|
机器学习/深度学习 人工智能 算法
程序员必知:VS2017动态链接库(.dll)的生成与使用
程序员必知:VS2017动态链接库(.dll)的生成与使用
945 0
|
存储 编解码 缓存
Opus从入门到精通(三)手撸一个Opus编码程序
PCM数据大小怎么计算呢?根据采样率采样格式,声道数计算.根据前面文章音视频之音频知识入门介绍:PCM文件大小 = 采样率 * 采样格式 * 声道数 * 录制时长采样率即一秒多少采样,采样格式指一个采用占多少字节,通常一个采用使用一个字节或者两个字节,所以采样率*采样格式计算出一秒钟一个声道PCM多少字节,乘以声道数,算出一秒钟PCM大小,再乘以时长就可以计算出PCM文件大小.
1183 0
|
存储 编解码 网络协议
Opus从入门到精通(五)OggOpus封装器全解析
针对上面的问题我们可以自定义一种封装格式,增加类似于WAV的Header,Header中存储元数据,每一帧音频数据前面增加可以标识帧边界的头,但是又会引出其他问题
1899 1
|
编解码 内存技术
Opus从入门到精通(四)Opus解码程序实现
由于我们解码后的数据直接写入文件,无法通过vlc等播放器播放,我们通过lame将解码后的数据再编码成mp3,当然,你要乐意也可以直接价格wav头输出成wav. 通过采样率,声道数等创建lame编码器
1343 0
|
数据可视化 关系型数据库 MySQL
解决用软件登陆的Mysql8数据库时,报错:Authentication plugin ‘caching_sha2_password‘ cannot be loaded
解决用软件登陆的Mysql8数据库时,报错:Authentication plugin ‘caching_sha2_password‘ cannot be loaded
1532 0
解决用软件登陆的Mysql8数据库时,报错:Authentication plugin ‘caching_sha2_password‘ cannot be loaded
|
编解码 5G
Opus从入门到精通(一):简介
Opus编解码器是专门设计用于互联网的交互式语音和音频传输。它是由IETF的编解码器工作组设计的,合并了Skype的SILK和Xiph. Org的CELT技术。
907 0