nick nack_coughing翻译

nick nack_coughing翻译webrtc中fec的处理机制:获取一帧数据,拆分成多个rtp包,再封装成fec包(fec只有primayblock),发送到网络;之后根据rtp包生成相应数量的fec包(根据冗余度来生成对应数量的包),再发送到网络。需要注意的是:rtpred包和fecred包都是序号连续的。所以判断一个完整帧的依据依然可以使用:获取到首包,获取到尾包,中间包连续。但因为fec的加入,导致所有原始数据的rtp包无法连续(和纯nack不会这样)。所以针对带有fec包的丢包处理机制是这样的:如果一个完整帧里面丢了原始

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

webrtc中fec的处理机制:获取一帧数据,拆分成多个rtp包,再封装成fec包(fec只有primay block),发送到网络;之后根据rtp包生成相应数量的fec包(根据冗余度来生成对应数量的包),再发送到网络。
需要注意的是:rtp red包和fec red包都是序号连续的。所以判断一个完整帧的依据依然可以使用:获取到首包,获取到尾包,中间包连续。但因为fec的加入,导致所有原始数据的rtp包无法连续(和纯nack不会这样)。
所以针对带有fec包的丢包处理机制是这样的:如果一个完整帧里面丢了原始数据包,一定要在当前帧的所有包到来之前,把此帧数据恢复完整,否则就会导致解码异常问题。如何恢复,两种策略同时使用:1.发现丢包会立即出发nack重传(即使是乱序也会触发)
2.靠后面来的fec包还原丢失的数据包。注意,以上两种策略一定要保证在下一帧数据到来之前把上一帧的数据包恢复完整,否则就会出现解码异常。

nack的处理机制:
与webrtc相比,我在此作了改善。发现丢包后立即触发重传,最多触发5次。
nack如何判断一帧的完整性:因为nack中没有fec的数据包,因此所有的数据包都是原始数据的rtp包。当前帧获取到了首包,尾包,中间包连续后,即可触发解码;之后可立即判断出下一帧的首包序列号是多少,因此比较容易。
fec如何判断一帧的完整性 :当前帧获取到了首包,尾包,中间包连续后,即可触发解码;但是下一帧的首包不一定是下一个序列号对应的数据包,因为有fec包存在。因此一定要保证在下一帧数据到来之前把上一帧的数据包恢复完整,否则就会出现解码异常

 

webrtc追求的是最低的延迟,当收到一个完整帧后立即解码输出。而在有fec数据后,判断一帧完整性变得异常复杂,最终我放弃了webrtc的思路。而是用空间换取了时间:内存中保存5个完整帧,通过mark识别,当大于5个完整帧后,取出首帧来解码 ,并从内存中删除该部分数据。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/169623.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • bootstrap的使用方法「建议收藏」

    bootstrap的使用方法「建议收藏」bootstrap的简单使用1.通过npm下载bootstrap2.进入官网的全局css样式3.选择一个样式实验一下1.通过npm下载bootstrap进入项目文件夹下的命令行输入以下命令npminit-ynpmbootstrap@3引用的方法不尽相同,也可以用别的方法进行引入可参考https://v3.bootcss.com/getting-started/#download2.进入官网的全局css样式链接在这:https://v3.bootcss.com/css/#form

  • UDP服务recvfrom函数设置非阻塞

    UDP服务recvfrom函数设置非阻塞本文先介绍我查看了的2篇文章,然后介绍linux和windows下的非阻塞设置。最后是非阻塞情况下接收情况的判断。2篇博文其实UDP的非阻塞也可以理解成和TCP是一样的,都是通过socket的属性去做。方法一:通过fcntl函数将套接字设置为非阻塞模式。方法二:通过套接字选项SO_RECVTIMEO设置超时。https://blog.csdn.net/daiyudong20…

  • c语言oj得pe,ACM入门之OJ~

    c语言oj得pe,ACM入门之OJ~所谓OJ,顾名思义OnlineJudge,一个用户提交的程序在OnlineJudge系统下执行时将受到比较严格的限制,包括运行时间限制,内存使用限制和安全限制等。用户程序执行的结果将被OnlineJudge系统捕捉并保存,然后再转交给一个裁判程序。该裁判程序或者比较用户程序的输出数据和标准输出样例的差别,或者检验用户程序的输出数据是否满足一定的逻辑条件。最后系统返回给用户一个状态:通过(Ac…

  • 安卓系统能读ntfs文件吗(Android Pie)

    AndroidP支持NTFS读取KernelConfigCONFIG_NTFS_FSCONFIG_NTFS_RW(只能针对已存在文件进行写操作)CONFIG_NLSCONFIG_NLS_UTF8(用于支持中文格式)vold修改文件:fs文件夹追加Ntfs.cpp和Ntfs.h,可以以Exfat.cpp为模板。差异点:fs/Ntfs.cpp①IsSupported直接returnIsFileSystemSupported(“ntfs”)。②Check函数直接返回0。③Mount函

  • 旁路由设置的正确方式

    旁路由设置的正确方式最近在玩旁路由,踩了一些坑,也学习了点相关知识,特整理记录下。一、旁路由的配置上图是旁路由的连接方式,一般作为旁路由的只有一个LAN口,可以把它想成一个普通的连接路由器的电脑。让他们ip在一个网段即可,比如主路由网关192.168.3.1,旁路由配置成192.168.3.21.主路由配置:DHCP配置,把网关和DNS改成旁路由ip地址,如192.168.3.2。2.旁路由配置:关闭DHCP,把网关改成主路由地址,如192.168.3.1,关闭桥接模式。这样配置后,网络流量如下图:.

  • php json字符串转json对象_PHP字符串函数

    php json字符串转json对象_PHP字符串函数怎么把php字符串转为json发布时间:2020-07-2214:05:08来源:亿速云阅读:162作者:Leah这期内容当中小编将会给大家带来有关怎么把php字符串转为json,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。php把字符串转为json的方法:首先定义一个数组,调用json_encode方法将数组编码为json格式的字符串;然后添加参数“true…

    2022年10月30日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号