WebRTC学习DAY06(ULPFEC)

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值