Skip to content

Latest commit

 

History

History
15 lines (8 loc) · 1.39 KB

双向码率自适应.md

File metadata and controls

15 lines (8 loc) · 1.39 KB

video 双向码率自适应

实际网络环境波动较大,如何获取当前水位以及与码率关系

  • 当发现p2p的水线超过一定值时,降低视频码率,例如当水位超过低水位时将视频码率降为原来的80%。网络正常的情况下p2p水位值很低,2mbps码率的视频水位值一般在100KB以下,该数值仅供参考,送入体积较大的I帧、网络波动等都会影响水位值。 APP SDK 可通过接口getStreamBufSize 获取当前水位

推流过程中,如何实现码率自适应

  • 推流过程中每间隔一定时间(例如1秒)调用 getStreamBufSize 获取获取水位值,由于瞬时速度的波动较大,这里建议使用1秒内的平均传输速度,设置一定长度的队列(例如长度为5,如果调用间隔比较短可以适当加长窗口),将该数值存入队列同时删除队列内最旧的一个数值,去掉一个最高值去掉一个最低值,计算平均值。算出的平均值可用于控制码率,可通过 2mbps 码率的视频水位值 100KB 对应关系做参考计算设置码率变化

  • 升码率可采取缓慢提升的方式,探测到合适的码率。升大太多,容易造成水位波动较大

  • 用户可结合以上方法实或借鉴cubic拥塞控制算法等的思想现自己的码率自适应策略。

  • 设备同 APP 实现原理一致