WebRTC之FEC前向纠错协议

这篇具有很好参考价值的文章主要介绍了WebRTC之FEC前向纠错协议。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

FEC前向纠错用于丢包恢复,对媒体包进行异或或其他算法生成冗余包进行发送。如果接收端出现丢包,可以通过冗余包恢复出原始的媒体包。FEC的代价是增加码率带宽,所以一般会根据网络状况、丢包率来动态调整FEC冗余系数,也会结合NACK/ARQ丢包重传使用。WebRTC使用的FEC包括:ULP、flex、RED三种协议。接下来,我们主要分析ULP的协议结构。

ULP全称为Uneven Level Protection,不均匀级别保护,权衡网络带宽和保护力度。FEC冗余包越多,丢包恢复能力越强,但是带宽消耗越多。并不是所有媒体包的优先级都相同,因此可根据优先级来划分保护等级,比如优先分配给音频包,然后是视频的I帧包,接着是P帧、B帧。

1、ULP结构

基于ULP的FEC包有一个或多个保护等级。如下图所示,FEC包#1只有一个等级,用于保护媒体包A和B;而FEC包#2有两个等级,0级用于保护媒体包C和D,1级用于保护媒体包A、B、C、D。

WebRTC之FEC前向纠错协议,WebRTC,FEC前向纠错,ULP

2、FEC数据包结构

FEC数据包由RTP头、FEC头、FEC等级、FEC载荷组成,如下图所示。

WebRTC之FEC前向纠错协议,WebRTC,FEC前向纠错,ULP

3、FEC头结构

FEC头的结构由:扩展位E、长掩码L、填充位P、扩展标志X、CSRC计数、标志位M 、PT载荷类型、基本序列号、时间戳、长度组成,占8个字节。如下图所示:WebRTC之FEC前向纠错协议,WebRTC,FEC前向纠错,ULP

E:扩展位,占1 bit,默认为0;

L:长掩码,占1 bit,L=0时掩码长度为16 bits,L=1时掩码长度为48 bits;

P、X、CC、M、PT与RTP头的数值一致;

SN base:基本序列号,占16 bits;

TS recovery:恢复包的时间戳,占32 bits;

length recovery:恢复包的长度,占16 bits; 

4、 FEC的ULP等级

FEC的等级头占4或8字节,当L=0时头部长度为4字节,当L=1时头部长度为8字节。其中,保护长度占16 bits,mask掩码占16 bits,当L=1时有扩展mask占32 bits。

WebRTC之FEC前向纠错协议,WebRTC,FEC前向纠错,ULP

掩码的设置需要符合以下条件:

(1)、保护等级大于0的媒体包只会被保护一次,保护等级等于0的媒体包可以被多次保护; 

(2)、假设媒体包的保护等级为p,它可以被等级为p-1的任意FEC包进行保护;

(3)、假设FEC包包含保护等级p,它必须包含保护等级p-1;

5、生成FEC包

FEC包由媒体包逐位异或得到,并且根据每个等级生成不同的FEC包。假如RTP媒体包之间长度不同,需要以最长的媒体包为基准,其他媒体包添加填充位。

单个保护等级的FEC包示例如下,这里以媒体包D长度为准,其他媒体包后面填充0:

WebRTC之FEC前向纠错协议,WebRTC,FEC前向纠错,ULP

 两个保护等级的FEC包示例如下:

WebRTC之FEC前向纠错协议,WebRTC,FEC前向纠错,ULP

6、FEC应用SDP会话

如下图所示,分为2个FEC组:第一组为"a=group:FEC 1 2",由音频流1和ulpfec流2组成;第二组为"a=group:FEC 3 4",由视频流3和ulpfec流4组成。

WebRTC之FEC前向纠错协议,WebRTC,FEC前向纠错,ULP 

 文章来源地址https://www.toymoban.com/news/detail-676923.html

 

到了这里,关于WebRTC之FEC前向纠错协议的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • WebRTC | 网络传输协议RTP与RTCP

    目录 一、UDP与TCP 1. TCP 2. UDP 二、RTP  1. RTP协议头 (1)V(Version)字段 (2)P(Padding)字段 (3)X(eXtension)字段 (4)CC(CSRC Count)字段 (5)M(Marker)字段 (6)PayloadType:区分音、视频类型 (7)Sequence Number:快速定位丢失数据包 (8)timestamp字段 (9)SSRC:区分不同源(

    2024年02月11日
    浏览(49)
  • 【音视频】基于webrtc协议浏览器播放rtsp

    现阶段直播越来越流行,直播技术发展也越来越快。Webrtc和rtsp是比较火热的技术,而且应用也比较广泛。本文通过实践来展开介绍关于rtsp、webrtc的使用过程。 本文是基于ffmpeg技术将mp4转换为rtsp视频流,并且将流推送到流媒体服务器(EasyDarwin)上,而后采用了webrtc-streamer对

    2024年01月19日
    浏览(74)
  • Web前端WebRTC攻略:传输协议UDP/RTP/RTC

    我们都知道HTTP协议,运行于TCP协议之上,是万维网的运转的基础。作为一名前端开发,我们似乎理所应当熟悉HTTP、TCP协议,以致于HTTP状态码、报文结构、TCP三次握手、四次挥手等等都已经成为了标配的基础面试题。但对于其他协议,我们似乎多多少少感到陌生。 下图是一个

    2024年02月13日
    浏览(41)
  • 【日志解析】【频率分析】ULP:基于正则表达式和本地频率分析进行日志模板提取

    1 论文出处 会议:International Conference on Software Maintenance and Evolution(ICSME) 级别:CCF-B 时间:2022 2 背景 2.1 背景介绍   日志文件包括大量关于软件系统执行的信息,用于帮助处理不同的软件工程活动,生成的日志事件主要由两部分组成:日志头和日志消息。解析日志消息需

    2024年02月09日
    浏览(59)
  • SRS4 对接海康威视GB28181协议推流 RTMP、webRTC拉流

    Ubuntu 20.04.2 LTS (GNU/Linux 5.4.0-88-generic x86_64) 编译SRS,需要切换到Develop分支,并开启gb28181功能: 配置文件:push.gb28181.conf Remark: 一定要修改配置文件中的host配置,改成你的服务器的IP,摄像头能访问到的这个IP。后续会改进为自动获取,目前还需要修改配置。 然后使用配置文件

    2023年04月08日
    浏览(46)
  • SRS OBS利用RTMP协议实现音视频推拉流;WebRTC 屏幕直播分享工具

    参考:https://ossrs.net/lts/zh-cn/docs/v5/doc/getting-started 1)docker直接运行SRS服务: 运行起来后可以http://localhost:8080/ 看到服务基本信息: 2) OBS 推流 在设置里设置直播地址: 然后回到首页点击开始直播 3)点击http://localhost:8080/ 可以网页查看流视频 SRS低延迟启动(暂时测试下来延迟

    2024年04月13日
    浏览(60)
  • 【音视频处理】RTMP、HLS、HTTP-FLV、WebRTC、RTSP的区别?直播协议详解

      大家好,欢迎来到停止重构的频道。 本期我们详细讨论 直播的相关协议 ,包括:HTTP-FLV、HLS、RTMP、Web-RTC、RTSP等等。 我们将会详细介绍这些协议的工作原理、应用场景、及延迟的原因。 我们按这样的顺序讨论​ 1、  RTMP、HTTP-FLV  2、  HLS  3、  Web-RTC  4、  RTSP  RTM

    2024年02月02日
    浏览(48)
  • ChatGPT专业应用:英文语法纠错

    正文共  381  字,阅读大约需要  1  分钟 英语学习者必备技巧,您将在1分钟后获得以下超能力: 英文语法纠错 Beezy评级 :B级 *经过简单的寻找, 大部分人能立刻掌握。主要节省时间。 推荐人  | Linda   编辑者  |  Yolanda ●此图片由Lexica 自动生成,输入:English learners 在

    2024年02月10日
    浏览(37)
  • pycorrector一键式文本纠错工具,整合了BERT、MacBERT、ELECTRA、ERNIE等多种模型,让您立即享受纠错的便利和效果

    pycorrector : 中文文本纠错工具。支持中文音似、形似、语法错误纠正,python3开发。实现了Kenlm、ConvSeq2Seq、BERT、MacBERT、ELECTRA、ERNIE、Transformer等多种模型的文本纠错,并在SigHAN数据集评估各模型的效果。 当然,针对不同业务场景,这些问题并不一定全部存在,比如拼音输入法

    2024年02月13日
    浏览(42)
  • DJ5-2 差错检测和纠错

    目录 一、差错检测和纠错技术 1、发送节点 2、接收节点 3、说明 二、差错检测技术 1、一比特奇偶校验 2、二维奇偶校验 3、Internet 校验和方法(复习) 4、循环冗余检测 CRC 5、差错检测方法比较 链路层提供比特级差错检测和纠正这两种服务。EDC 是差错检测和纠正比特。 ①

    2024年02月04日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包