无丢包的自适应抖动缓冲

     2023-02-25     91

关键词:

【中文标题】无丢包的自适应抖动缓冲【英文标题】:adaptive jitter buffer without packet loss 【发布时间】:2014-11-22 15:29:00 【问题描述】:

我关心的是自适应抖动缓冲器的设计,它随着抖动计算的增加和减少而增加和减少容量。

我认为没有理由对延迟或容量进行任何调整,除非存在缓冲区欠载,然后可能会出现超过容量的传入数据包突发(假设缓冲区容量首先等于缓冲区深度/延迟)。例如,如果我正在接收 20ms 的数据包,我可能会实现一个 100ms 深的缓冲区,因此可以容纳 5 个数据包。如果数据包之间经过 160 毫秒,那么我可能预计会同时看到多达 8 个数据包。此时我有两个选择:

    根据溢出规则丢弃三个数据包 不丢弃任何数据包并增加缓冲区容量和延迟

假设选择 2 并且网络状况改善并且数据包传送再次变得正常(抖动值下降)。怎么办?同样,我认为我有两个选择:

    什么都不做,忍受增加的延迟 减少延迟(和容量)

使用自适应缓冲区,我认为我应该做出选择 4,但这似乎不对,因为它要求我人为/任意丢弃在遇到选择 2 时专门保存的音频数据包首先是更大的抖动。

在我看来,正确的做法是最初选择 #1 以保持延迟,同时丢弃因抖动增加而延迟交付的数据包(如有必要)。

类似的情况可能是,我没有在 160 毫秒的间隙后获得 8 个数据包的突发,而是仅获得 5 个(也许刚刚丢失了 3 个数据包)。在这种情况下,增加缓冲区容量并没有什么好处,但确实有助于减少以后发生溢出的可能性。但是如果溢出的想法是要避免的(从网络端),那么我首先会简单地使缓冲区容量比配置的“深度/延迟”大一些。换句话说,如果溢出不是由于本地应用程序未能及时从缓冲区中取出数据包引起的,那么溢出只有两个原因:要么发送方撒谎并且以比约定的更快的速率发送数据包(或从未来发送数据包),或者,数据包突发之间的间隙超出了我的缓冲区深度。

显然,“自适应”缓冲区的全部意义在于识别后一种情况、增加缓冲区容量并避免丢弃任何数据包。但这给我带来了正确的问题:当网络抖动清除时,我如何“适应”回到理想设置,同时仍然执行相同的“不丢弃数据包”理念?

想法?

【问题讨论】:

检查星号项目中实现的抖动缓冲区:voip-info.org/wiki/view/Asterisk+new+jitterbuffer。它是自适应的。 【参考方案1】:

使用压扩。 当抖动清除时,您合并数据包并“加速”缓冲区。 Merge offcourse 需要适当的处理,但想法是从 ajb 弹出 2 个 20ms 数据包并创建一个 30ms 数据包。你一直这样做,直到你的缓冲水平正常。

与欠载类似,除了引入延迟之外,数据包还可以“拉伸”。

【讨论】:

根据定义,欠载意味着缓冲区中没有数据包。那么哪些数据包会被拉伸?我不确定你的建议是否有意义。一旦遇到欠载,我已经在音频播放中出现了差距。扩展欠载后可能突然涌入的数据包似乎更有可能导致不必要的溢出。 不要等待发生欠载。当你的缓冲区达到某个低水位线时,开始拉伸。 我不同意你的建议。如果缓冲区中仍有数据包,则没有理由仅仅因为几个数据包延迟而开始扭曲播放和增加延迟。如果这些数据包最终到达,仍然及时在正确的时隙中播放,那么音频播放必须再次失真,以减少人为引入的延迟。在这种情况下,播放系统引入了 2 个非常不必要的失真,因此此时不需要自适应算法。 对于自适应 jb,我想根据抖动增加和减少延迟。当存在高抖动或欠载时,我会增加延迟。理想情况下,当我引入延迟时,我不希望出现间隙。因此,可以使用先前解码的帧生成人工帧,或者可以扩展当前帧。一旦我增加了延迟,帧就会以正常速率弹出。现在,如果缓冲区在一段时间后已满,则加速而不是丢弃数据包是更好的主意。如果网络非常突发,则 ajb 应识别这种情况并保持较高的延迟和缓冲区大小。

ble数据传输丢包的分析

...考技术A像所有的网络传输协议一样,应用层能感知到的丢包有可能产生于应用层之下的所有层。对于蓝牙BLE而言,进一步细化从机到主机的数据传输场景(假设使用的是Notify方式传输),其数据传输路径为:1、从机的应用层产生... 查看详情

一种宿主机内核bug导致kvm虚拟机丢包的监控和处理方法

近期公司一台kvm虚拟机丢包引发应用异常,经过分析宿主机内核bug导致,没有包转发到虚拟机,体现为虚拟机丢包引发应用异常。原因分析和相关概念如下是现象和分析过程1、收集虚拟机内部的virtio0-input中断,执行如下命令,... 查看详情

多媒体通信基础

...频流Rtp/rtcp的流间同步媒体间同步reference一路媒体流case1:无丢包,无网络抖动无须同步,无须缓存,解码即播。case2:存在网络抖动如果这时候收到帧就立马解码播放,由于网络的抖动,在某些时刻,大... 查看详情

stp抖动导致内网丢包

故障现象内网访问公网出现不规律丢包现象排查解决方法1、stp类型stp为mstp单实例2、接口tc报文发送接收对比接入、汇聚、核心dispstptc报文数量,基本锁定故障位置3、access接口配置边缘端口接入层交换机部分接口未配置边缘端口... 查看详情

renix如何查看时延和抖动和丢包——网络测试仪实操

...Template_1的平均时延是4.691vs,最大延迟抖动是0.224vs​查看丢包​一、预约端口​单 查看详情

用ping命令简单的测试延时抖动丢包率

在DOS命令状态下输入:ping202.105.135.211-t(连续的对该IP地址执行Ping命令,直到被用户以Ctrl+C中断)就会得到下面的结果:Pinging202.105.135.211with32bytesofdata:Replyfrom202.105.135.211:bytes=32time=93msTTL=42Replyfrom202.105.135.211:bytes=32ti 查看详情

千兆以太网卡吞吐量和丢包率优化总结

...太网接口,但实际传输速率远远低于千兆,并且丢包率很高。最近我做了一些以太网吞吐量和丢包率方面的优化工作,有一些心得和大家分享一下。一、测试模型 二、影响吞吐量和丢包率的因素1.网卡DMA缓冲区大小 ... 查看详情

atkkping(网络丢包测试工具)

...装就可以使用了,这是一款ping的增强程序,网络丢包率测试软件。主要用来进行丢包测试使用,可以测试网络环境!可以报告带宽,延迟抖动和数据包丢失,还可以用来测试一些网络设备如路由器,防... 查看详情

ping丢包故障处理方法

ping丢包故障处理方法1.Ping丢包故障定位思路故障分析Ping丢包是指Ping报文在网络中传输,由于各种原因(如线路过长、网络拥塞等)而产生部分Ping报文丢弃的现象。在使用Ping命令,出现Ping丢包的现象时,第一步需要确定Ping丢... 查看详情

Linux UDP丢包的原因

】LinuxUDP丢包的原因【英文标题】:CausesofLinuxUDPpacketdrops【发布时间】:2011-08-2006:37:08【问题描述】:我有一个接收有序UDP数据包的LinuxC++应用程序。由于排序,我可以很容易地确定数据包何时丢失或重新排序,即何时遇到“间... 查看详情

即时通讯实时视频聊天技术提供qos保证的方法

...;二是网络的接入类型和接入设备性能;三是对丢包、抖动、乱序以及网络拥塞的自适应调整能力,即QoS(QualityofService,服务质量)。交互式实时视频应用通常采用RTP协议进行音视频传输,RTP头部提供... 查看详情

即时通讯实时视频聊天技术提供qos保证的方法

...;二是网络的接入类型和接入设备性能;三是对丢包、抖动、乱序以及网络拥塞的自适应调整能力,即QoS(QualityofService,服务质量)。交互式实时视频应用通常采用RTP协议进行音视频传输,RTP头部提供... 查看详情

网络丢包的四大原因和修复方法(转他人文章)

网络丢包的四大原因和修复方法??网络性能问题是一个老生长谈的问题。网络是应用和数据的基础。所以一旦这一层出现问题,那么将会影响上层应用的体验。造成网络性能问题的原因有很多种,但是在这篇文章中我们主要讨论... 查看详情

voip资料

...kamailio搭建IMS实例。Qos在Linphone中的实现分析1、RTP统计:丢包、抖动、时延、使用带宽;2、RTCP;3、TOS/DSCP;4、RSVP资源预留;5、Jitterbuffer;6、自适应抖动补偿;7、自动调整发送比特率;H264格式 &nb 查看详情

ftp传输大文件严重丢包的解决方法

...发给国外合作伙伴,经常遇到长距离网络不可避免的时延丢包及跨运营商的情况。怎么解决这个问题?其实不仅是大文件,网络上传输的各种内容,大多数都需要解决丢包和损坏问题。只是对于大文件传输,丢包和损坏的情况可... 查看详情

如何摆脱ffmpeg中的“抖动缓冲区已满”错误?

】如何摆脱ffmpeg中的“抖动缓冲区已满”错误?【英文标题】:Howtogetridoferrors"jitterbufferfull"inffmpeg?【发布时间】:2018-08-0122:01:10【问题描述】:如何摆脱错误jitterbufferfull?我使用来自最新快照之一的ffmpeg。ffmpegversionN-900... 查看详情

怎么解决ftp传输大文件严重丢包的问题?

...地,或者发往国外,经常遇到长距离网络不可避免的时延丢包及跨运营商的情况。如何解决这个问题?其实不仅是大文件,网络上传输的各种内容,大多数都需要解决丢包和损坏问题。只是对于大文件传输,丢包和损坏的情况可... 查看详情

为什么tcp在高时延和丢包的网络中传输效率差?

说明:有同学私信问到,为什么TCP在高时延和丢包的网络中传输效率差?Google可以搜到很多的信息,这里转译了部分IBMAsperafasp技术白皮书的第一章节内容,作为参考。-在这个数字世界中,数字数据的快速和可靠移动,包括全球范... 查看详情