FEC Format
WebRTC 应用RFC 5109所定义的 XOR 来对RTP 数据进行保护, 以抵抗网络丢包. 协议所定义的包结构如下:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RTP Header (12 octets or more) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | FEC Header (10 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | FEC Level 0 Header | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | FEC Level 0 Payload | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | FEC Level 1 Header | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | FEC Level 1 Payload | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Cont. | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
RTP Header 就是 RFC 3550 所定义的RTP 报文结构的头部. 如果这个RTP Packet 是FEC包的话,
M - Marker 必须为0, 对于FEC 而言, Marker 是无意义的.
SSRC - SSRC必须跟这个FEC所要保护的RTP 数据包的 SSRC一致, 表示这两者是同源的。

本文介绍了WebRTC如何使用XOR FEC对RTP数据进行前向纠错编码,遵循RFC 5109标准。内容包括FEC Format的详细结构,如RTP Header、FEC Header和ULP Level Header,以及Red Packet的处理方式。FEC通过MASK标识要保护的数据包,并通过RTP Header的特定字段提供额外保护。WebRTC仅支持FEC Level 0,不涉及复杂的ULP。最后提到了Red Packet的重新编码和传输过程。
最低0.47元/天 解锁文章
1337

被折叠的 条评论
为什么被折叠?



