WEBRTC 实时视频传输中的RTCP协议码率控制报文

流媒体传输中常用的RTCP包主要有SR/RR/SDES/BYE/APP/XR,主要由RFC 3611和RFC 3550定义。


而WEBRTC视频中常用的RTCP包比语音要多很多,语音的RTCP主要用于状态传递,统计数据。而视频中的RTCP更多赋予了控制功能,比如关键帧请求,码率控制等等。






本文不介绍语音中的RTCP,只介绍视频中的RTCP包。


这些报文遵守RFC4585和RFC5104协议。






第一类:关键帧请求


主要包括SLI/PLI/FIR,作用是在关键帧丢失无法解码时,请求发送方重新生成并发送一个关键帧。


这本质是一种重传,但是跟传输层的重传的区别是,它重传是最新生成的帧。


PLI 是Picture Loss Indication,SLI 是Slice Loss Indication。


发送方接收到接收方反馈的PLI或SLI需要重新让编码器生成关键帧并发送给接收端。






FIR 是Full Intra Request,这里面Intra的含义可能很多人不知道。


Intra的含义是图像内编码,不需要其他图像信息即可解码;Inter指图像间编码,解码需要参考帧。


故Intra Frame其实就是指I帧,Inter Frame指P帧或B帧。






那么为什么在PLI和SLI之外还需要一个FIR呢?


原因是使用场景不同,FIR更多是在一个中心化的Video Conference中,新的参与者加入,就需要发送一个FIR,其他的参与者给他发送一个关键帧这样才能解码,


而PLI和SLI的含义更多是在发生丢包或解码错误时使用。






第二类:重传请求


主要包括RTX/NACK/RPSI


这个重传跟关键帧请求的区别是它可以要求任意帧进行重传






第三类:码率控制


主要包括REMB/TMMBR/TMMBN


TMMBR是Temporal Max Media Bitrate Request,表示临时最大码率请求。表明接收端当前带宽受限,告诉发送端控制码率。


REMB是ReceiverEstimated Max Bitrate,接收端估计的最大码率。
TMMBN是Temporal Max Media Bitrate Notification
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值