You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
012301234567890123456789012345678901
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V=2|P| FMT | PT | length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SSRC of packet sender |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SSRC of media source |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
: Feedback Control Information (FCI)
Payload type (PT): 8 bits
This is the RTCP packet type that identifies the packet as being
an RTCP FB message. Two values are defined by the IANA:
Name | Value | Brief Description
----------+-------+------------------------------------
RTPFB | 205 | Transport layer FB message
PSFB | 206 | Payload-specific FB message
Feedback Control Information
Generic NACK message
The Generic NACK message is identified by PT=RTPFB and FMT=1.
012301234567890123456789012345678901
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PID | BLP |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Picture Loss Indication
012301234567890123456789012345678901
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V=2|P| FMT=1 | PT=206 | length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SSRC of packet sender |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SSRC of media source (unused) = 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
对于 PLI,由于只需要通知发送关键帧,无需携带其他消息,所以 FCI 部分为空。
对于 FMT 规定为 1,PT 规定为 PSFB。
Full Intra Request
012301234567890123456789012345678901
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V=2|P| FMT=4 | PT=206 | length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SSRC of packet sender |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SSRC of media source (unused) = 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
: Feedback Control Information (FCI) :
: :
// Full intra request (FIR) (RFC 5104).// The Feedback Control Information (FCI) for the Full Intra Request// consists of one or more FCI entries.// 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 = 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
FMT 规定为 4,PT 规定为 PSFB。
由于 FIR 可用于通知多个编码发送端(例如多点视频会议情况),所以用到了 FCI 部分,填充多个发送端的 ssrc 信息。
base sequence number:2 字节,TransportFeedback 包中记录的第一个 RTP 包的 transport sequence number,在反馈的各个 TransportFeedback RTCP 包中,这个字段不一定是递增的,也有可能比之前的 RTCP 包小。
packet status count:2 字节,表示这个 TransportFeedback 包记录了多少个 RTP 包信息,这些 RTP 的 transport sequence number 以 base sequence number 为基准,比如记录的第一个 RTP 包的 transport sequence number 为 base sequence number,那么记录的第二个 RTP 包 transport sequence number 为 base sequence number+1。
010123456789012345
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|T| S | Run Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
chunk type (T):1 bit,值为 0。
packet status symbol (S):2 bits,标识包状态。
run length (L):13 bits,行程长度,标识有多少个连续包为相同状态。
Status Vector Chunk
010123456789012345
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|T|S| symbol list |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
chunk type (T):1 bit,值为 1。
symbol size(S):1 bit,为 0 表示只包含 packet not received(0)以及 packet received(1)状态,每个状态使用 1bit 表示,这样后面 14bits 的 symbol list 能标识 14 个包的状态。为 1 表示使用 2bits 来标识包状态,这样 symbol list 中我们只能标识 7 个包的状态。
symbol list:14 bits,标识一系列包的状态, 总共能标识 7 或 14 个包的状态。