【每天学点‘音视频’】前向纠错 和 漏包重传

😄作者简介: 小曾同学.com,一个致力于测试开发的博主⛽️,主要职责:测试开发、CI/CD

如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。

😊 座右铭:不想当开发的测试,不是一个好测试✌️。

如果感觉博主的文章还不错的话,还请点赞、收藏哦!👍

在音视频传输中,前向纠错 和 漏包重传都是用于网络丢包、保障媒体流连续性的关键技术。

前向纠错(FEC)

FEC:Forward Error Correction ,前向表示提前预防,前向纠错表示提前冗余,预防丢包

  1. FEC 原理

    发送端在传输原始数据包的同时,会额外发送一部分冗余数据(纠错码),当有数据丢失时,接收端可通过冗余数据恢复出完整信息,无需额外请求重传。(有点像"备份策略",在发送时就为可能的丢包做好准备)

  2. 特点

    优点:无需重传;抗突发丢包

  3. 缺点:冗余数据占用额外带宽;无法 100% 修复(若丢包超过冗余数据的恢复能力,仍会丢失数据)

  4. 适应场景

    实时音视频、直播会议、弱网环境

漏包重传(ARQ)

全称:ARQ:Automatic Repeat Request

  1. 原理

    接收端检测到丢包后,通过反馈机制通知发送端重新发送丢失的包,依赖双向通信。

  2. 特点

    优点:

    精准修复:只重传丢失的包,无冗余带宽浪费。

    高可靠性:理论上可保证 100% 数据完整(前提是网络允许重传)。

  3. 缺点

    延迟增加:重传需要往返时间( RTT ),不适合强实时场景。

    依赖网络状况:高丢包或高延迟下,重传可能失效。

  4. 适应场景

    对延迟不敏感但要求高可靠性的场景(如 VoIP、点播视频)。

什么是反馈机制

是指接收端向发送端传递网络状态或数据接收情况的控制信号,用于触发重传、调整编码参数或优化传输策略。具体就是通知发送端哪些数据包丢失了。有点就是可以精准修复、可以根据实时网络状况调整策略。

反馈机制的实现流畅

检测丢包:接收端发现序列号不连续

生成 NACK:构造包含丢失包 ID 的 NACK 报文

发送反馈:通过控制通道(RTCP)将 NACK 发送给发送端

触发重传:发送端接收到 NACK 后,立即重传指定包

常见的反馈机制

总结

通过本篇文章可了解前向纠错和漏包重传的概念,另外需要知道的是反馈机制是漏包重传的核心,在音视频传输中,两种技术会结合使用,以平衡实时性和可靠性。例如,WebRTC 会优先用 FEC 修复少量丢包,仅在关键帧丢失或 FEC 失效时触发 NACK 重传。

相关推荐
Pocker_Spades_A1 小时前
视频不用再一张张截图:ClipSketch AI 把关键画面转成漫画,还能顺手生成文案
人工智能·音视频
星辰徐哥1 小时前
本地视频预览别只自己看:把Remotion动效项目发给客户远程验收
docker·ai·node.js·html·音视频·react·remotion
镜像视界(浙江)科技有限公司1 小时前
《视频孪生之上:二维展示终结,三维空间计算重构城市逻辑》——跨摄像连续表达 × 三角测量厘米级定位 × 动态轨迹建模,构建新一代城市空间
大数据·人工智能·算法·矩阵·音视频·空间计算
你不是我我2 小时前
【AI 测评】想用自己的声音给视频配音?Index-TTS本地部署这样做
人工智能·音视频
Ulyanov5 小时前
AudioVision Pro:基于 PySide6 + sounddevice 的实时音频可视化播放器设计
python·算法·音视频
福大大架构师每日一题5 小时前
ComfyUI v0.34.0发布:视频、音频、三维、显存与合作节点全面更新
音视频
敲代码的嘎仔8 小时前
用 Redis 合并写 + DelayQueue 延迟检测,把视频播放进度写库频率降到 1/60
java·开发语言·数据库·redis·缓存·音视频·高并发
Xxtaoaooo9 小时前
AI 视频生成能不能真正跑通?MoneyPrinterTurbo 本地制作、远程访问与授权验证
人工智能·音视频·cpolar·ai视频·自动化短视频
bloxed10 小时前
“视频上看得见的洪水淹没预演”:视频数字孪生完整实践
音视频
angushine10 小时前
文本转视频
音视频