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)比较:    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

OPPO内核工匠

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

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

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

打赏作者

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

抵扣说明:

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

余额充值