网络抖动:
网上说法是指网络中的延迟是指信息从发送到接收经过的延迟时间,一般由传输延迟及处理延迟组成;
而抖动是指最大延迟与最小延迟的时间差,如最大延迟是20毫秒,最小延迟为5毫秒,那么网络抖动就是15毫秒,
它主要标识一个网络的稳定性。
但是个人从直观表现上看指的是每两个相邻的数据包接收时的时间间隔之差,比如第一个数据包的与第二个数据包到达的时间差是20ms,可能第三个包和第二个包的时间差是5ms,
那么网络抖动就是15ms。
t表示一个个的数据包的序号,y表示相邻两个数据包到达的时间差值,从上图可知y的值是一直没有变化(也就是时间差值相同),这就是理想的网络质量,网络抖动为0。
实际的网络质量如上图,相邻两个数据包到达的时间差值都不相同,那么波峰H假设20ms,波谷D为5ms,那么网络抖动就是20 - 5 = 15ms。
网络抖动对视频的影响:
视频的显示是通过渲染来实现的,如果提供给渲染的数据包时慢时快,那么渲染显示的效果也是时快时慢,这样视频看起来就又可能忽然快忽然慢,或者看起来一卡一顿似的。
jitter buffer解决网络抖动给视频带来影响的原理:
通过计算网络延迟来知道网络抖动的大小,这样设置合适的缓冲区大小用来存储接收到的数据包。假设一开始网络抖动过大,这时我们
创建一块buffer用来接收数据,但不及时的送去给解码处理或者渲染处理,而是等待网络抖动大小设置的延迟时间到了才把buffer里的数据提供给解码或者渲染。
这块buffer里含有多个视频帧数据,这样解码器从buffer里获得的数据就是时间连续的,这样就不会出现视频忽快忽慢的情况,而是看起来很平滑顺畅。但是可以看出使用jitter buffer,渲染的视频就会和源视频有较大的延迟,这是不可避免的。
————————————————
版权声明:本文为CSDN博主「雨夜和阳晨」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42717961/article/details/106137187