流媒体弱网优化之路(FEC)——FEC的应用奥秘(附demo)
——
我正在的github给大家开发一个用于做实验的项目 —— github.com/qw225967/Bifrost
目标:可以让大家熟悉各类Qos能力、带宽估计能力,提供每个环节关键参数调节接口并实现一个json全配置,提供全面的可视化算法观察能力。
欢迎大家使用
——
提示:demo链接在文章末尾,有兴趣自取。
一、FEC应用简析
前面的NACK方案能在延迟较小的情况下快速补偿丢包,但是随着丢包率上升以及延迟增加,纯NACK方案逐渐无法满足传输需求了。那么在已知高延迟高丢包的环境下,我们可以通过提前冗余去做数据补充,让我们可以快速有效的抵抗丢包,这就是FEC(前向纠错)在较差环境下抗丢包的优势,当然它的劣势就是会固定地增加带宽来抵抗丢包,因此我们更多考虑将他使用在超过20%丢包以上的场景上。
1.1 FEC原理简述
我这里有一篇文章简单分析了固定冗余的FEC算法原理,从中可以了解FEC的基本逻辑:FEC原理
1.2 FEC编码的不同
各类FEC编码都是为了优化冗余比以及算力的,这里有一些记录可以看一下:RS与FEC编码
二、FEC丢包模型
根据上次nack中提到的丢包模型NACK丢包模型,我们来计算一下这里使用fec可以达到的效果:

上图提到重传问题,我们在这里加入冗余比较低的基于范德蒙矩阵的fec

本文深入探讨了FEC(前向纠错)在流媒体弱网环境中的应用,通过理论分析与实际仿真,展示了FEC如何有效降低丢包率和重传概率。在高丢包和延迟的网络条件下,FEC能够通过冗余数据快速恢复原始信息,减少重传次数,从而改善流媒体质量。作者还分享了一个GitHub项目,供读者实践与研究FEC算法。
最低0.47元/天 解锁文章





