一、概述
webrtc冗余打包方式有三种:Red(rfc2198)、Ulpfec(rfc5109)、Flexfec(草案)。其中Red和Ulpfec要成对使用。
二、RedFEC
简单将old报文打包到新包上。
三、UlpFEC
将old报文异或新包后,打包新包上。
四、FlexFEC
将old报文异或新包后,打包新包上。
五、使能FEC
webrtc默认使能Red+Ulp的FEC。Flex仅在实验阶段,还不能正式使用。

六、封装FEC
1、发送冗余报文处理
RTPSenderVideo::SendVideo。当编码器支持时间分层,可以仅冗余level 0的视频数据。否则,就要冗余所有视频数据。冗余度是根据Send Side BWE动态调整。

2、冗余报文个数确定
ForwardErrorCorrection::NumFecPackets 存储媒体报文数*保护因子。

3、根据码率动态调整冗余度
ProtectionBitrateCalculator::SetTargetRates

参考
https://webrtcglossary.com/red/
https://webrtcglossary.com/ulpfec/
https://www.cnblogs.com/x_wukong/p/8193290.html
本文详细介绍了WebRTC中的三种冗余打包方式:Red、Ulpfec和Flexfec,重点解析了RedFEC、UlpFEC的工作原理及FlexFEC的实验状态。阐述了如何在WebRTC中使能FEC,以及发送冗余报文的处理流程,包括冗余报文个数的确定和根据码率动态调整冗余度的方法。
)&spm=1001.2101.3001.5002&articleId=87278303&d=1&t=3&u=ba21a19a8b70465dbd9716402ecc297a)
2738

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



