WebRTC:如何从WebRTC中提取出音频QoS代码(Windows下并编译成dll库文件)

本文介绍了如何在Windows环境下,从WebRTC M66版本中提取音频质量保障(QoS)代码,并编译成DLL库文件。通过VS单步调试,作者从audio_coding_module层面封装了NetEQ、NACK和FEC等功能,提供了创建、初始化、释放、插入RTP包和获取PCM数据等接口。文章详细阐述了编译、封装和测试DLL库的步骤,以及遇到的问题和解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载请注明出处:https://blog.csdn.net/qq_29621351/article/details/80991615

WebRTC版本:M66 

      WebRTC的语音QoS机制几乎可以说是行业的标杆,其实现的方式主要融入了三种技术,包括丢包重传(NACK),前向纠错(FEC)以及原GIPS公司的网络均衡器(NetEqualizer,简称NetEQ)。前两种都是在牺牲一定成本的前提下,尽最大努力降低丢包率,而NetEQ是在前两者的基础上降低延迟、弥补丢包。

      WebRTC语音质量效果好绝不是因为使用了其中某一项技术,而是三种技术相结合并且有策略的使用,例如对于实时音视频来讲,丢包重传技术由于需要等待重传包,往往会增加延时,而它在与前向纠错同时使用的过程中,只有在前向纠错无法恢复丢失的数据包时,才会使用丢包重传,并且即使开启了丢包重传,对于它重传过来的数据包,是否使用还要权衡网络的RTT状态值。WebRTC源码中对于语音QoS的封装层次很深,NetEQ封装在最底层,其中包含着抖动消除、解码和丢包隐藏(也就是丢包补偿)。在NetEQ的外层,封装着NACK和FEC。某些编解码器也支持带内的FEC(例如opus)。

      其实我是做Android版的WebRTC的,但是Android版本WebRTC调试实在是太不方便了,所以我一般做什么都预先在Windows上做完,这样可以用VS单步调试,然后在Linux上模仿着做。这次主要是在WebRTC中将音频QoS接收端处理提取出来,用C语言格式封装成库,以后可以随拿随用。首先需要有VS开发环境,

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值