webrtc QOS方法十三(视频渲染平滑)
一、背景介绍
视频渲染时间的确定需要考虑三方面的因素:网络抖动、网络延时、音视频同步
网络抖动:视频帧在网络上传输,会受到网络抖动的影响,不能收到立刻播放,需要进行适当的平滑
网络延时:一些报文在网络传输中,会存在丢包重传的情况。渲染时需要进行适当缓存,等待丢失被重传的报文
音视频同步:音视频报文传送到接收端,也不能完全保证同时接收。需要做一些时间校准,保证音视频偏差不影响体验
所以在计算视频渲染时间的时候,会结合这三方面的参数,计算一个合理值。
二、实现原理
1、RTP报文->组视频帧 函数调用关系
RtpDemuxer::OnRtpPacket
->RtpVideoStreamReceiver2::OnRtpPacket
->RtpVideoStreamReceiver2::ReceivePacket
->RtpVideoStreamReceiver2::OnReceivedPayloadData
->RtpVideoStreamReceiver2::OnInsertedPacket
->RtpVideoStreamReceiver2::OnAssembledFrame
->RtpVideoStreamReceiver2::OnCompleteFrames
->VideoReceiveStream2::OnCompleteFrame
->VideoStreamBufferController::InsertFrame
->VideoStreamBufferController::MaybeScheduleFrameForRelease
->VideoStreamBufferController::FrameReadyForDecode
->VideoStreamBufferController::OnFrameReady
->VCMTiming::RenderTime
->VCMTiming::RenderTimeInternal ---计算视频渲染时间核心函数
2、计算视频帧 渲染时间 核心函数:
三、实现细节
1、根据ts计算渲染时间
-------待续
2、根据网络做二次平滑
3、音视频同步延时时间
原文地址:https://blog.csdn.net/CrystalShaw/article/details/140464368
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!