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

相关推荐
简离12 天前
前端调试实战:基于 chrome://webrtc-internals/ 高效排查WebRTC问题
前端·chrome·webrtc
REDcker12 天前
WebCodecs VideoDecoder 的 hardwareAcceleration 使用
前端·音视频·实时音视频·直播·webcodecs·videodecoder
gihigo199812 天前
基于TCP协议实现视频采集与通信
网络协议·tcp/ip·音视频
山河君13 天前
四麦克风声源定位实战:基于 GCC-PHAT + 最小二乘法实现 DOA
算法·音视频·语音识别·信号处理·最小二乘法·tdoa
YYDataV数据可视化13 天前
【P2P音视频通信系统】之 WebRTC Android平台 aar 下载
webrtc·实时音视频
音视频牛哥13 天前
Android平台RTMP/RTSP超低延迟直播播放器开发详解——基于SmartMediaKit深度实践
android·人工智能·计算机视觉·音视频·rtmp播放器·安卓rtmp播放器·rtmp直播播放器
qq_4162764213 天前
通用音频表征的对比学习
学习·音视频
美狐美颜sdk13 天前
Android全局美颜sdk实现方案详解
人工智能·音视频·美颜sdk·视频美颜sdk·美狐美颜sdk
EasyDSS13 天前
私有化部署EasyDSS视频点播能力:全链路视频技术赋能,打造企业级视听新体验
音视频·hls·m3u8·点播技术·智能转码
qq_4162764213 天前
DeLoRes——一种通用的音频表征学习新方法(DeLoRes(基于 Barlow Twins 的冗余最小化方法)
学习·音视频