WebRTC音视频同步原理与实现详解(下)

WebRTC音视频同步原理与实现详解(上)

第四章、音视频同步实现详解

4.1 音视频同步标准

音视频做到什么程度才算是同步呢?

关于音画同步, 业界有3个标准:

1)ITU-R BT.1359(1998):国际电信联盟标准

2)ATSC IS/191(2003):美国的数字电视国家标准

3)EBU R37(2007):欧洲广播联盟标准

目前在音视频同步方面影响最大的国际标准是,ITU-R BT.1359-1,该标准的评测者既包括专家, 也包括一般人,采用5级评分标准,给出的答案是:

3ef7e2c723e47acce4a2dfd032230b9e.png

fc1d72ee0fc863bc9ee8effaeddc4bf9.png

delay time是用视频延迟减去音频延迟,负数(-)表示音频延迟更大,正数(+)表示视频延迟更大。

4.2 同步器与延迟调整

4.2.1 音视频同步器

音视频同步器,就是负责将音频和视频流同步播放。

a58f1393a80bfea705a21dc8381fc59b.png

图中中间大框架里就是整个同步器,同步器输入包括三部分:

1)期望音频目标延迟,以该延迟播放,音频是流畅的

2)期望视频目标延迟,以该延迟播放,视频是流畅的

3)最近一对音视频包的相对延迟

同步器输出,包括两部分:

1)音频目标延迟

2)视频目标延迟

音视频相对延迟:音视频目标延迟差 - 最近一对音视频包相对延时

3acfd0aae21fa537a086309b9fd35953.png

4.2.2 调整延迟

1)音视频目标延迟,取期望目标延迟与最小播放延迟的最大值。

65adc2571301e927dcf25d143ef761d1.png

最近一对音视频包的相对延迟与音视频的目标延迟差之和,得到当前时刻的音视频相对延迟,即音视频流目前的时间偏差,计算当时相对延迟,并使用滑动平均算法处理,减少噪声和干扰的影响。滑动平均算法公式:

f0360a6bb12e88084c9305b2dcd97d14.png

其中,k表示平滑滤波器的窗口大小,用于计算滑动平均值的权重系数(代码中kFilterLength= 4),y表示平滑滤波器的滑动平均值,x表示当前样本值,这里是相对延迟

2)计算音视频的延迟

为了控制步长,相对延迟diff_ms是平滑的相对延迟的一半,并限制单次在80ms范围之内,如果是30ms以内,则认为是同步的,不需要调整。

当diff_ms > 0,说明视频比较慢,再进行视频延迟与基准(默认0)比较:

a4e985371cbade39ab92fbc0327f73f7.png

  • 如果video_delay_.extra_ms > b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值