FEC:前向纠错
WebRTC中常见两种:ULPFEC/FLEXFEC
ULPFEC(非均等保护前向纠错)
1.数据包包括:所保护的媒体数据,保护级别,对应保护级别的保护长度,偏移量掩码
2.报文格式:[RTC Header只有在使用独立的数据流发送时才使用到]
WebRTC采用封装在RED(冗余编码)报文中随源媒体数据一起发送,故不考虑RTP header
2.1 FEC Header
E:扩展位目前默认置0
L:指示长偏移掩码是否使用,0表示偏移掩码为16位,1表示为48位(对应级别头部mask为2字节/6字节)
P/X/CC/M/PT recovery:由本FEC包所保护的所有媒体数据包的RTP头部的P/X/CC/M/PT flag位经XOR操作后得到。
SN base:本FEC包所保护的媒体数据包的RTP报文的序列号最小值。
TS recovery: 由本FEC包所保护的所有媒体数据包的RTP头部中的Timestamp字段经XOR操作后得到。
Length recovery : 由本FEC包所保护的所有媒体数据包的负载长度(包括CSRC、RTP头部扩展、负载和padding的长度之和,以16位无符号网络序表示)经XOR操作后得到。
2.2 FEC Level Header
Protection length:本级别所保护的媒体数据的长度
mask:表示偏移掩码,指示本级别所保护的媒体数据包的分布情况。