WebRTC QOS概念简述

webrtc用于提升QOS的方法有:
NACK、FEC、SVC、JitterBuffer、IDR Request、PACER、Sender Side BWE、VFR(动态帧率调整策略)。

带宽预测 or REMB Sender Side BWE

1. RTCP: transport cc
  • Delay Based Control 基于延时的策略
  • Loss Based Control 基于丢包的策略
    ----带宽预测为Over use 后,sender自己更新码率.
  • 优点:sender 在于无需依赖于两个端点
  • 缺点在于浪费了一定的带宽,同时Firefox目前还不支持
2. REMB
  • 增加abs-send-time 在扩展头
  • REMB的优点在于码率的控制权在服务端(接收端),没有额外的带宽浪费。
  • 在采用TCC方案后,接收端也可以利用REMB来通知发送端码率发送上限。
  • GCC

NACK 丢包重传

  • RTP Retransmission(NACK) 报文丢失重传RTPFB (205)
    How to build NACK feedback, dependent on Video Jitter Buffer Status.
  • PLI/SLI/RPSI 指定净荷重传 PSFB(视频帧丢失重传、slice丢失重转、参考帧丢失重传)

FEC 前向纠错

FEC是发送端在发送报文的时候,将之前的旧包也打包到新包里面,若接收端有丢包,就用新包里面冗余的旧包恢复数据。

webrtc实现该冗余功能,有三种方式:链接

  • RED就是RFC2198冗余。将前面的报文直接打入到新包里面,在接收端解析主包和冗余包。

  • ULPFEC,目前webrtc仅将SVC编码的Level 0视频帧打包成FEC。其余层有丢包,就逐步将帧率,保证视频相对流畅。用到的协议是:RFC5109。

  • FLEXFEC根据接收端反馈回来的丢包信息,总结一些规律,把预判丢失概率比较大的包,冗余打包出去。

[SVC] Scalable Video Coding

VP9/openH264 支持SVC,通过改变一个GOP内帧的线性参考关系。防止网络丢包对视频传输造成的影响

JitterBuffer 防抖动buffer

JitterBuffer实现原理是,在收到网络上的RTP报文后,不直接进行解码,需要缓存一定个数的RTP报文,按照时间戳或者seq的顺序进行重排,消除报文的乱序和抖动问题。JitterBuffer分动态JitterBuffer和静态JitterBuffer两种模式。静态JitterBuffer缓存报文个数固定。动态JitterBuffer是根据网络环路延时的情况,动态调整缓存报文个数。

IDR Request 关键帧请求

关键帧也叫做即时刷新帧,简称IDR帧。对视频来说,IDR帧的解码无需参考之前的帧,因此在丢包严重时可以通过发送关键帧请求进行画面的恢复,当会议中有新的订阅的时候也需要publisher重新发送关键帧。关键帧的请求方式分为三种:RTCP FIR反馈(Full intra frame request)、RTCP PLI 反馈(Picture Loss Indictor)或SIP Info消息,具体使用哪种可通过协商确定

PACER

pacer 是wenrtc的一种平滑发包策略,防止一帧数据把网络压垮,pacer会根据获取的拥塞情况进行改变发包间隔,pacer肯定会引起延迟,但延迟不严重,pacer有几个关键技术:pace queue、padding、budget,详情请看: https://yq.aliyun.com/articles/606053, webrtc中的PacerSender :https://www.jianshu.com/p/3fde9b8d77f6

VFR(动态帧率调整策略)

WebRTC帧率调整策略

Reference

https://www.jianshu.com/u/102fafe8c6b9 weizhenwei的简书
** http://ec.ctiforum.com/jishu/qiye/wenzhai/535765.html WebRTC的拥塞控制和带宽策略 袁荣喜

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值