fec之我见一

DoubleLi DoubleLi     2022-08-31     117

关键词:

顾名思义,FEC前向纠错,根据收到的包进行计算获取丢掉的包,而和大神沟通的结果就是 纠错神髓:收到的媒体包+冗余包 >= 原始媒体包数据 

 

  直到满足 收到的媒体包+ 冗余包 >= 原始媒体包数据       则进入恢复模式,恢复出2 4,然后一次输出2 3 4 5
 
所谓的Qos,也可以理解为抖动缓冲,解决udp包乱序、包重复的问题
 
NAT保活,保持udp连接,简言之:
当你向一个公网服务器发送数据时,服务器可以翻转IP和端口向你发数据, 但如果你长时间不发数据给服务器,服务器若想用之前的IP和端口向你发就不一定成功了。因为在路由器上的NAT映射可能已经失效,如果你是一直向服务器发送数据,那就不存在这个问题。
 
FEC的设计理念大多一样,编码/解码/回调函数:
1.encode,不区分输入内容,编码后输出输出冗余包数据;
2.decode,根据输入数据进行纠错,如果数据不是有序,则等待  (收到的媒体包+冗余包 >= 原始媒体包数据) 输出原数据
3.callback,一包一包数据输出,阻塞接口

fec之我见四

接上文,来详细的说明一下FEC前向纠错的具体实现:FEC_matrix是一个比较常用的算法,Vandermonde,范德蒙矩阵是法国数学家范德蒙提出的一种各列为几何级数的矩阵。范德蒙矩阵的定义:V=其第i行、第j列可以表示为(αi)^(j-1)。范... 查看详情

fec之我见三

继续上文讲解:3)标准的RTP头结构如下所示:其中第一个字节中的x标志位是否扩展了RTP头,RTP协议允许用户自定义的扩展,扩展的字段紧挨上述RTP固定头。RTP扩展投中承载如下信息:1).当前包所在的Group组序号,码流由连续的Gr... 查看详情

过拟合之我见

    查看详情

架构师之我见

...朋友也可以留言,我们共同探讨这个话题。 架构师之我见                                                                                  2009-08-06架构 查看详情

闭包之我见

一、闭包是什么?  · 闭包就是可以使得函数外部的对象能够获取函数内部的信息。  ·闭包是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。... 查看详情

前端之我见(代码片段)

1.HTML介绍1.1服务器本质1importsocket234sk=socket.socket()56sk.bind(("127.0.0.1",8080))7sk.listen(5)8910whileTrue:11conn,addr=sk.accept()12data=conn.recv(8096)13conn.send(b"HTTP/1.1200OK\\r\\n\\r\\n")14conn.s 查看详情

httphelper之我见

    前几月一直用一个Http的访问类去调用WebApi,说句实话最开始没觉有什么,一是技术老,二是觉得比较简单,但是最近我一直关注云开发和AI这块儿微软技术,看到云平台调用API大多类似,所以回想这个早年的调... 查看详情

我之我见:ftp共享

目录1.ftp服务概述...11.1简介...11.2复合TCP连接...11.3数据连接模式...11.3.1主动模式...11.3.2被动模式...11.4数据传输模式...11.5ftp类型...12.部署ftp.22.1安装ftp.22.2ftp功能划分...22.2.1ftp访问控制...22.2.2ftp连接及传输控制...22.2.3ftp上传文件默... 查看详情

关于元素居中之我见(干货)

不使用定位    水平居中:text-align=center;(可继承)    竖直居中:margin:0auto;(块级元素)    其他居中:1.文字居中:父元素设置高子元素设置高  line-height=height(父元素)          2.图片居中: ... 查看详情

关于堆栈和block之我见

临时变量存在栈里对象存在堆里关于blockc与oc最大的区别在于一个是静态语言一个是动态语言先看看c的写法voidtestFunc(){printf("helloworld");}voidtestFuncPoint(void){void(*x)(void)=testFunc;x();}  c语言没有block一说,叫做函数指针,其实现... 查看详情

classpathxmlapplicationcontext源代码阅读之我见

由于本人的能力有限,只能说出自己的见解,如有错漏什么的,请大家批评指出。由于代码封装太多,这里只列出了我认为的部分最重要的代码,一些简单的封装代码,不在下面列出。由于代码太过于复杂,在本次博客中,只列... 查看详情

jquery中的callbacks之我见

callbacks是jquery的核心之一。语法如下:jQuery.Callbacks(flags)  flags 类型: String 一个用空格标记分隔的标志可选列表,用来改变回调列表中的行为。once:确保这个回调列表只执行(.fire())一次(像一个递延Deferred).memory:... 查看详情

join()方法之我见

JavaScriptjoin()方法定义和用法join()方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。语法arrayObject.join(separator)参数描述separator可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分... 查看详情

编译原理之我见

     经过网上的调查,我发现编译原理并不像我所想象的那样简单,我以为编译原理其实就是像塑造一个翻译师一样,赋予它翻译的架构即可,但是经过调查后,结果却不是我所想,编译原理就是将高级语言翻... 查看详情

我之我见:samba共享

目录1.Samba概述11.1Samba简介11.2SMB/CIFS协议11.3Samba服务基础11.3.1主要软件包11.3.2系统服务脚本11.4共享账号控制11.4.1共享访问控制11.4.2共享账号管理22.配置Samba服务器22.1服务器端操作32.1.1安装samba服务器端程序32.1.2建立samba认证用户nic... 查看详情

依赖倒置之我见

  .net程序员对面向对象设计原则以及设计模式的重视似乎不如Java,包括许多有经验.net的程序员,也并没有将面向对象的思想渗透进项目中。我本身就是这样一个例子。C#和Java都是面向对象的语言,设计模式对两者是通用的,... 查看详情

云服务之我见

说实话,虽然工作了十几年,但是很少写东西,今后努力多写的东西,记录一下这几年在it领域工作的一些心得,来和大家一起分享!首先说一下笔者工作的是一个二三线城市,有幸进入了一家云计算的工作,不过主营业务并不... 查看详情

margin,padding之我见

 在网页布局中,margin和padding绝对会占很重要的作用,但是在实际的项目中,很多新手前端程序员们往往不能正确的使用它们,导致会出现一些不必要的麻烦,下面是我在前几天的项目中遇到的一些问题,以及个人总结的一... 查看详情