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

相关推荐
Luke Ewin1 小时前
根据音频中的不同讲述人声音进行分离音频 | 基于ai的说话人声音分离项目
人工智能·python·音视频·语音识别·声纹识别·asr·3d-speaker
Macdo_cn12 小时前
Infuse Pro for Mac v8.1 全能视频播放器 支持M、Intel芯片
macos·音视频
Leventure_轩先生16 小时前
[展示]Webrtc NoiseSuppressor降噪模块嵌入式平台移植
webrtc
科技小E16 小时前
EasyRTC:基于WebRTC与P2P技术,开启智能硬件音视频交互的全新时代
网络·网络协议·小程序·webrtc·p2p·智能硬件·视频监控
我爱蛋蛋后18 小时前
Linux驱动开发之音频驱动与基础应用编程
linux·c语言·驱动开发·音视频
Macdo_cn21 小时前
Screen Wonders for Mac v3.3.1 3D屏保应用 支持M、Intel芯片
macos·音视频
苏三福1 天前
rk3588/3576板端编译程序无法运行视频推理
arm开发·音视频
江同学_1 天前
RTSP场景下RTP协议详解及音视频打包全流程
音视频
EasyNVR1 天前
EasyRTC智能硬件:实时畅联、沉浸互动、消音护航
运维·服务器·网络·安全·音视频·webrtc·p2p
Erekys2 天前
视觉分析之边缘检测算法
人工智能·计算机视觉·音视频