WebRTC 音频抗弱网技术

        实时音视频通话一直是我们通信行业必不可少的一门技术,并且近今年音视频边缘设备产品涌现出很多设备,然而,在当今网络环境中,网络传输质量确常常无法得到有效的保障,那么,在当今弱网环境下,如何提升音视频传输的通话质量就显得尤为重要,即便是音视频技术发展到今天,音视频弱网处理仍然是一个不小的技术挑战,本文重点介绍下一种针对弱网环境下的音频处理策略,我们的目标是:

        在弱网环境下:丢包率30%、延迟300ms、抖动150ms情况下,仍然可以提供流畅的高音频质量通信,做到让用户通话无感。丢包率达60%的情况下,仍可正常语音沟通,听清语义。

一、弱网是如何形成的


        现在你了解了音频是怎么传输的,接下来我们来看看弱网是如何形成的。其实弱网状态中有三个常见的问题:丢包(Packet Loss)、延迟(Latency)和抖动(Jitter)。我们挨个来看看它们分别是怎么产生的。

丢包
        我们还是以物流小车为例。“丢包”指的是有的车无法在有效时间内到达终点,甚至可能永远也到不了终点。比如有的小车发生了车祸,或者小车司机罢工了。如果 100 辆车里有10 辆无法到达终点,那么我们就把它叫做丢包率为 10%。

        是的,在网络传输中,数据包会经过很多复杂的路径,有的是在物理传输中发生了丢失,有的是在服务器、路由转发时由于拥堵或等待时间过长被抛弃。可以说,互联网传输并不是百分百可靠的,总有数据无法按时传输到目的地。

延迟和抖动
        在网络这条公路上,从起点到终点我们有很多不同的路径可以选择。你可以选择走高速但也可能走了乡村小道,这样就会导致包裹到达终点所经历的时间发生变化。而这个从发送到接收经过的时间我们把它叫做延迟。

        那么很显然,音频在发送的时候是按照时间顺序等间隔发送的,但是由于每个数据包经过的路径不同,从而到达目的地的延迟也不一样。这就导致有的时候很长时间都没有一个数据包到达,而有的时候几乎是同时来了好几个数据包。这就是我们常说的抖动。如果我们按照数据包到达的顺序去播放音频,那么音频播放可能是乱序的而发生杂音,也可能是没有数据可以播放,导致卡顿。

此外,还有一些其他网络特定原因,比如:

1、带宽限制:很多网络情况,由于各种条件限制,带宽并不是高,很难保障正常情况下的高质量音视频传输。

2、比如卫星通信网络,网络延迟大多都在1秒以上,这种情况下如果不做弱网处理,基本上是无法进行正常的音视频通信。

针对以上网络问题,我们做如下具体分析:

1、当网络环境只有延迟、没有抖动时,这种情况只会造成声音延迟播放而不会出现声音卡顿现象,因此在这种情况下我们只需根据抖动的计算评估,自动调整jettebuffer缓冲大小即可;

2、当网络环境仅有延时和抖动时,那么就相对比较复杂,会出现数据包乱序,导致声音卡顿。因此需自动调整jettebuffer缓冲大小,对音频数据包重新排序,使音频包顺序调整正确。

3、当网络环境仅有网络丢包时,会造成音频数据包的丢失,导致声音卡顿。

                                       

                                                                        抖动包处理

二、弱网处理策略

预处理:

1、带宽估计:实时检测网络可用带宽值以及带宽变化趋势,计算出网络可用带宽情况。

2、网络监测:实时检测网络延时均值、网络丢包以及网络抖动的变化趋势。

策略:

1、jettebuffer队列根据网络检测情况自动调整大小,做到网络环境好时,既不会影响正常通话网络延迟,而网络环境差时,可以做到最大容错处理,牺牲延迟换取音频质量。

2、当丢包严重时,使用PLC、FEC等音频处理算法技术,可以恢复丢失的数据包,当然如何使用、何时使用时重中之重。

3、采用高频处理音频编码,比如opus,内部处理相对较好,对抗网络弱网环境也是有不错的体验。

        综上所诉,其实可以对抗音频弱网的算法和技术还是有很多,但是难点是如何用,何时用才是最难的,如果用的不好,可能会适得其反,这个就需要多年的经验积累了

        为了使用方便,我自己把所有音频处理算法都独立抽像出来小模块,比如像FEC、PLC等等这小小算法,直接就可以调用,就一两个接口使用比较方便,有需要技术沟通交流的可以跟我联系。

联系方式:

vx:unique_no_1

tel:18108010758

  • 11
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

音视频工具站

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值