移动设备上的 Speex 抖动缓冲区
我正在使用一个使用 speex jitterbuffer 的应用程序。发生的情况是,当连接发生严重变化时,抖动缓冲区似乎会变大,结果是严重延迟(最多 5 秒) - 基本上,看起来好像没有数据包被丢弃。
我想减少延迟;最多容忍 1 秒的延迟,即使这意味着丢弃旧的缓冲数据包。我的问题是如何配置 speex jitterbuffer 来做到这一点?
谢谢
I am using an application that is using the speex jitterbuffer. What happens is that the jitterbuffers appears to grow large when there is heavy variations in the connectivity, and the result is then a heavy delay (up to 5 seconds) - basically, it appears as if no packets are thrown away.
I want to reduce the delay; tolerate a max of 1 second delay, even if it means throwing away old buffered packets. My question is how do you configure the speex jitterbuffer to do this?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Speex 抖动缓冲区有两个可以使用的参数:JITTER_BUFFER_SET_MAX_LATE_RATE 和 JITTER_BUFFER_SET_LATE_COST。如果将 MAX_LATE_RATE 设置为 X%,则抖动缓冲区将确保永远不会“丢弃”超过 X% 的迟到数据包(并在需要时增加延迟)。 SET_LATE_COST 参数仅控制丢弃帧与增加延迟相比的相对“坏度”。
The Speex jitter buffer has two parameters you can use: JITTER_BUFFER_SET_MAX_LATE_RATE and JITTER_BUFFER_SET_LATE_COST. If you set the MAX_LATE_RATE one to X%, then the jitter buffer will be sure to never "discard" more than X% late packets packets (and increase the delay if needed). The SET_LATE_COST parameter just controls the relative "badness" of a discarding a frame compared to increasing the latency.