计算机 · 2021年7月16日 0

webrtc视频QOS

https://blog.csdn.net/crystalshaw/category_9281395.html

Table of Contents

策略汇总

  1. NACK
  2. FEC
  3. SVC
  4. JitterBuffer
  5. IDR Request
  6. PACER
  7. Sender Side BWE或REMB(Receiver Estimated Maximum Bitrate
  8. 动态帧率调整
  9. AVSync音视频同步
  10. 动态分辨率调整策略

NACK

  1. 通过检测接收到的包序号,若发现丢包(包序号跳跃)就生成一个NACK,"准备”要求发送端重传;
  2. 上面生成的NACK不是马上发送的,而是需要有一个delay,因为这个包可能只是乱序了,并不是真的丢失了,如果在延时内收到了这个包,那么这个NACK就不用发了;
  3. 有时一个包可能要发多次NACK要求进行重传,但是同一个包的多次NACK发送间隔应该大于rtt,因为从接收端发送NACK到发送端再到发送端把包传过来,需要至少rtt的延时;
  4. 1个包不会无限发送NACK进行重传,而是有1个最大重传次数;

FEC

  1. RedFEC
    一个包里面带两个包(当前包和上一个包)
  2. UlpFEC
    m个原始数据包通过异或生成n个冗余包,任意丢失n个包都可以通过剩余的包把这一组包全部恢复出来
  3. FlexFEC
    引入了交织算法,异或的方式更加灵活(可以按行,按列之类的方式进行异或);
  4. Reed Solomon算法

FEC冗余度配置:通过预测丢包率来配置FEC冗余度.

拥塞控制

 GCCSendside-BWE
码控计算模块接收端发送端
RTP头部扩展AbsSendTimeTransportSequenceNumber
接收端关键对象RemoteBitrateEstimatorAbsSendTimeRemoteEstimatorProxy
网络延时滤波器Kalman FilterTrendline Filter
接收端反馈RTCP报文REMBTransportCC