写在前面:
分辨率的改变,是由于网络变化引起的;
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中判断修改