webrtc QOS方法十三(视频渲染平滑)

打印 上一主题 下一主题

主题 1973|帖子 1973|积分 5919

一、背景介绍

视频渲染时间的确定需要思量三方面的因素:网络抖动、网络延时、音视频同步
网络抖动:视频帧在网络上传输,会受到网络抖动的影响,不能收到立刻播放,需要进行适当的平滑
网络延时:一些报文在网络传输中,会存在丢包重传的环境。渲染时需要进行适当缓存,等待丢失被重传的报文
音视频同步:音视频报文传送到接收端,也不能完全包管同时接收。需要做一些时间校准,包管音视频偏差不影响体验
以是在计算视频渲染时间的时候,会结合这三方面的参数,计算一个公道值。
二、实现原理

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、根据网络做二次平滑

webrtc代码走读十六(Jitter延时的计算)_webrtc jitterdelay framedelay-CSDN博客文章浏览阅读4.5k次,点赞4次,收藏20次。一、延时计算原理1)jitter延时计算公式JitterDelay由两部分延迟造成:传输大帧引起的延迟和网络噪声引起的延迟。计算公式如下:JitterDelay = theta[0] * (MaxFS – AvgFS) + [noiseStdDevs * sqrt(varNoise) – noiseStdDevOffset]该公式详细推导过程,请参见大牛的文章《WebRTC视频接收..._webrtc jitterdelay framedelay
https://blog.csdn.net/CrystalShaw/article/details/100763301

3、音视频同步延时时间

webrtc QOS方法十一(音视频同步AVSyn实现)_webrtc avsync-CSDN博客文章浏览阅读1.8k次。一、背景介绍音视频同步结果直接影响用户体验,音视频同步机制也是webrtc的核心模块之一。音视频同步的基本头脑是,在接收端渲染前,对齐当前要渲染的音视频采集时间,要处理好三大块事情:音视频采集绝对时间、音视频传输时间、音视频同步时间。二、实现原理1)采集时间2)传输时间戳3)音视频同步三、参考https://www.jianshu.com/p/3a4d24a71091https://my.oschina.net/u/4713941/blog/4974741.._webrtc avsync
https://blog.csdn.net/CrystalShaw/article/details/114820274



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

科技颠覆者

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表