webrtc QOS方法九(VideoFrame.ntp_time_ms含义)

webrtc远端视频渲染的时候,VideoFrame携带时间参数有三个:timestamp_rtp_、ntp_time_ms_、timestamp_us_。

这里先描述一下ntp_time_ms_计算和传递过程。

WebRTC视频接收端延迟包括三部分:缓冲区延迟JitterDelay,解码延迟DecodeDelay和渲染延迟RenderDelay。其中DecodeDelay和RenderDelay相对比较稳定,而JitterDelay受发送端码率和网络状况影响较大。JitterDelay也是造成接收端延迟的最大因素。

缓冲区延迟JitterDelay由两部分延迟构成:传输大尺寸视频帧造成码率burst引起的延迟和网络噪声引起的延迟。

ntp_time_ms_就是缓冲区延迟JitterDelay。

一、传递过程

1)rtp->decode过程

webrtc的rtp报文里面会携带一个该报文发送端的NTP时间戳。接收端根据这个时间戳,就可以知道该报文的发送时间。

RtpVideoStreamReceiver::OnReceivedPayloadData

RemoteNtpTimeEstimator::Estimate

 

VCMPacket::VCMPacket

 

2)decode->renderer过程

VP8DecoderImpl::Decode

input_image是解码前的数据,需要将input_image里面保存的ntp_time_ms_传递到 解码后的YUV帧信息里面。

VP8DecoderImpl::ReturnFrame

这里只是把该时间戳送入渲染模块,但是从解码后到渲染后之间的延时,ntp_time_ms_没有包含。

二、计算原理

webrtc的BWE模块用Trendline算法评估网络延时,计算原理是根据报文发送时间与接收时间差,计算网络延时。在RTP报文的extension字段中会携带该报文的发送时间。所以我们这里获取到的ntp_time_ms就是该报文发送时的系统时间。

我们可以使用这个时间精确计算出一帧视频从发送端发送出来到接收端的总延时时间。

 

三、参考

https://blog.csdn.net/CrystalShaw/article/details/82981183

 

 

 

 

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值