Ulpfec
将一组M个报文进行异或,生成N(N就是FEC的冗余度)个FEC报文,打包出去。这组报文任意丢其中的N个,都可以通过这组(M-N)个报文+FEC冗余包恢复回来
利用原理:XOR(异或算法)
WebRTC里面默认使用Red+ulp的FEC
构建流程

SendVideoPacketAsRedMaybeWithUlpfec()函数完成下列四件事情
1.把本rtp数据包【需要保护的packet】送入UlpfecGenerator,并尝试构造FEC包;
使用的是ForwardErrorCorrection对象 fec_ 来实现
通过fec_调用EncodeFec函数构造FEC
int EncodeFec(const PacketList& media_packets,//媒体包必须属于同一媒体
uint8_t protection_factor,//保护因子
int num_important_packets,//本帧中重要的包(这个与后面的掩码表设定相关)
bool use_unequal_protection,//是否启用uep
F

本文深入探讨了WebRTC中使用ULPFEC(Forward Error Correction)进行数据包保护的机制。通过异或算法,ULPFEC能确保在网络中任意丢弃一定数量的数据包后,仍能恢复原始信息。主要步骤包括:构造FEC包、封装为RED包、发送RTP数据包及FEC包。详细介绍了SendVideoPacketAsRedMaybeWithUlpfec()函数的功能,包括FEC包的生成、RED封装以及发送流程。
最低0.47元/天 解锁文章
527

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



