当前位置: 首页 > news >正文

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

😄作者简介: 小曾同学.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 重传。

http://www.dtcms.com/a/337520.html

相关文章:

  • 图像分类精度评价的方法——误差矩阵、总体精度、用户精度、生产者精度、Kappa 系数
  • 在 PyCharm Notebook 中安装 YOLO
  • Google 的 Opal:重新定义自动化的 AI 平台
  • 【项目】分布式Json-RPC框架 - 项目介绍与前置知识准备
  • ARM架构下的cache transient allocation hint以及SMMUv2的TRANSIENTCFG配置详解
  • kafka 冲突解决 kafka安装
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘pygame’问题
  • 数据赋能(401)——大数据——持续学习与优化原则
  • 删除并获得点数
  • 线程间通信(互斥锁,死锁,信号量)
  • 148-基于Python的2024物流年度销售收入数据可视化分析系统
  • PYTHON让繁琐的工作自动化-函数
  • 功能测试相关问题
  • 使用空模型实例调用辅助函数,确定在量化过程中哪些层会被跳过(43)
  • 实现make/makefile
  • Android RxBinding 使用指南:响应式UI编程利器
  • AI智能的“进化史”:从弱人工智能到通用人工智能的跨越
  • Linux中基于Centos7使用lamp架构搭建个人论坛(wordpress)
  • [Oracle数据库] Oracle 进阶应用
  • 【完整源码+数据集+部署教程】织物缺陷检测系统源码和数据集:改进yolo11-RevCol
  • 51单片机-驱动74HC595芯片实现IO口扩展模块教程
  • C++STL之list详解
  • MySQL 运算符详解:逻辑、位运算与正则表达式应用
  • CSS:水平垂直居中
  • 蔬菜批发小程序:生产商的数字化转型利器——仙盟创梦IDE
  • 吴恩达 Machine Learning(Class 1)
  • Fluss:颠覆Kafka的面向分析的实时流存储
  • 深入解析Kafka消费者重平衡机制与性能优化实践指南
  • 【Java基础】反射,注解,异常,Java8新特性,object类-详细介绍
  • 民俗博物馆如何选择数字技术?交互体验如何创新文化传播方式?