我遇到了一个移动应用程序,它执行语音和视频质量测试,以衡量 IP 连接上的语音/视频体验的质量。测试计算抖动、丢包等值。对于远程流。

我很好奇这是如何做到的?编写这样的移动应用程序需要什么?

感谢任何形式的帮助。

谢谢。

有帮助吗?

解决方案

最简单的方法是通过正在测试的网络从设备发送数据,然后在同一设备上再次接收数据。

这使您可以轻松计算每个数据包所花费的时间(延迟)、不同数据包的时间差异(抖动),并检测任何数据包丢失。请注意,数据包丢失是一个相对的事情 - 数据包可能只是延迟很长时间而不是丢失。通常,如果在某个抖动窗口内没有接收到数据包,则可以将其声明为丢失。

在现实世界中,您通常想要从点“A”到点“B”进行测试(即不只是大步回到“A”点)。对于定期发送数据包的语音或视频编解码器(编码器)来说,这很简单,因为您知道第二个数据包应该在第一个数据包之后的给定时间到达,如果没有,则会延迟(或提前到达)。由此您可以计算“B”点的抖动。任何未到达的数据包(在您允许数据​​包到达的时间内)将被视为丢失的数据包。请注意,样本的编码方式可能会导致抖动计算出现问题,但如果您正在创建自己控制编码的测试应用程序,则可以避免这些问题 - 有关更多信息,请参阅下面的链接: http://www.cs.columbia.edu/~hgs/rtp/faq.html#jitter

另一件需要注意的事情是,您没有提到延迟,但这可能非常重要,因为您可能拥有一个没有数据包丢失和出色抖动的网络,但延迟很大,这可能会对某些应用程序产生巨大影响(例如,嗓音)。举一个简单但不太现实的例子,从抖动和数据包丢失的角度来看,您拥有一个完美的网络,但路由器会进行某种安全查找,从而为每个数据包增加两秒的延迟。因为每个数据包的延迟相同,所以抖动会很好,但对于双向语音应用,“A”点说话的人和“B”点听到它们的人之间的两秒延迟将是一个主要问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top