写在前面:
分辨率的改变,是由于网络变化引起的;
webrtc中,通过,往返延时,接收延时,丢包率和相关算法获取网络当前状态;详细内容可以参考相关文章;
分辨率直接变化的原因是QP值的变化,QP值的变化是码率引起的,码率的变化时网络带宽变化控制的,带宽变化的数值是由webrtc中的带宽估计算法计算的,
带宽估计算法主要是由 丢包率,接收延时,和往返延时决定的。
一:
首先要确定一点,在webrtc中的分辨率,码率,帧率等设置,是通过clas VideoAdapter设置实现的;
具体函数是:
// Generates a scale factor that makes |input_num_pixels| smaller or
// larger than |target_num_pixels|, depending on the value of |step_up|.
Fraction FindScale(int input_num_pixels, int target_num_pixels, bool step_up)
上层一般Videocapture中判断修改
本文介绍了WebRTC如何根据网络状况动态调整视频分辨率,主要涉及带宽估计算法、丢包率、延时等因素。通过VideoAdapter类的FindScale函数进行缩放比例计算,AdaptFrame函数进行上层适应,并利用RequestResolutionLowerThan和RequestHigherResolutionThan进行封装。Qp值的变化是触发分辨率调整的关键,其在编码端和解码端都可以获取。
订阅专栏 解锁全文
419

被折叠的 条评论
为什么被折叠?



