本篇文章主要介绍rtcp的反馈包,在音视频通话过程中反馈包是接收端用来通知发送端的消息。
RTCP 反馈包
反馈包详情见:rfc4585
反馈包协议格式:
All FB messages MUST use a common packet format that is depicted in
Figure 3:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V=2|P| FMT | PT | length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SSRC of packet sender |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SSRC of media source |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
: Feedback Control Information (FCI) :
: :
Figure 3: Common Packet Format for Feedback Messages
协议字段介绍
- version : 协议版本号
- P :是否包含填充数据。如果包含,在包的尾部会存在填充数据
- FMT :Feedback message type 反馈类型,常用的反馈消息如:NACK 、PLI、FIR等
- PT :包类型。有两大类型的反馈包,PT =205、PT =206,分别为传输层反馈,负载层反馈
NAME | Value | Brief Description |
---|---|---|
RTPFB | 205 | Transport layer FB message |
PSFB | 206 | Payload-specific FB message |
- length:包的总长度,包括头与填充数据的总长度。
- SSRC :发送该RTCP包的发送者的SSRC
- media ssrc :该RTCP发送给谁,media SSRC就是谁的
- FCI: 反馈包的控制信息,该字段是变长的,不同的反馈包FCI的内容和长度不一样
本文将介绍负载层常用的两类反馈消息:PLI 、FIR
PLI
Picture loss indication (PLI) (RFC 4585)
- 格式:FMT = 1,PT =206
- 作用:在发生关键帧丢失无法解码时,请求发送端产生新的关键帧
PLI 反馈包没有FCI字段,只包含前面12个字节,webrtc处理PLI包见pli.cc文件。
当发送PLI通知对方产生关键帧时,至少需要等待一个RTT时间,且关键帧的包比普通包要大,发送时间也会增加,所以会增加一定的延时。
FIR
Full intra request (FIR) (RFC 5104)
- 格式:FMT = 4,PT =206
- 作用:请求发送端产生新的关键帧。PLI是在发生丢包时请求产生关键帧,而FIR是当新用户进入房间,为了使该用户立马看到视频,所以给他产生一个新的关键帧,让其可以立即解码渲染看到视频。
FIR包除了前面几个相同字段外,包含一个或多个FCI字段,当房间内有多个用户时,此时FIR就会包含多个FCI字段,一个FCI对应一个用户。
FCI 字段格式如下:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SSRC |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Seq nr. | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
字段介绍:
- SSRC :这个SSRC 和前面的Medias SSRC相等。该FIR包发给谁,让谁产生关键帧就填谁的SSRC
- Seq nr: 该fir包序列号,占8位
- Reserved :预留字段
webrtc的处理见fir.cc 文件。
版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。