OMCS 视频延迟测试
如果要测试OMCS视频的延迟,要怎么做了?
1. 视频通话的过程
我们先看看在OMCS中,如果B要看到A的视频图像, OMCS 底层做的主要步骤如下所示:
(1)A方:摄像头图像采集。
(2)A方:图像编码得到编码帧。
(3)A方:发送编码帧。
(4)网络:传输。
(5)B方:接收编码帧。
(6)B方:解码图像。
(7)B方:渲染图像在UI上显示出来。
这样在B方就看到了A的视频图像。
2. 测试延迟的方法
现在,我们需要测试的延迟,指的是从(1)到(7)的整个过程的耗时。
如果做到这一点了?
我们可以在第(1)步的时候,记录下图像的采集时间 time1, time1会与编码帧一同传送到B方,然后B方在第(7)步渲染的时候,记录下时间 time2 。
这样一来,整个过程的耗时就是:time2 - time1 。
3. 如何保证A方电脑的时间和B方电脑的时间是完全一样的了?
我们知道,延迟是以毫秒(ms)为单位的,所以要让上述方案可行,A方电脑和B方电脑的时钟必须完全一样(同一时刻,两台电脑的时钟误差在1ms以内)。
这个似乎不是太好确定。但是有更简单的解决办法:我们让A方和B方运行在同一台电脑上,这样,时钟的误差就没有了。
4. 开始测试
比如,将本文文末下载的测试程序中的OMCS服务端部署在阿里云服务器上,在某台客户电脑上登录两个OMCS延迟测试客户端 A 和 B,然后,在B方连接A的摄像头即可弹出如下窗口:
截图中,红线框出的部分即是: time2 - time1 。 时间是以“ 时:分:秒 . 毫秒”的样式显示的。
还有一个问题,那就是现在A和B在同一台电脑上,是否能模拟出在公网正式部署运行时差不多的场景了(A和B不在同一台电脑上)?
我们只要能确认视频图像是由A发出后到达阿里云服务器,然后再从云服务器传送到B,这样从公网绕了一圈,就相当于实际模拟了真实的运行场景。
我们打开任务管理器, 切换到“性能”选项卡,到该页左下方“打开资源监视器”。在“资源监视器”窗口,切到”网络“选项卡,即可看到两个Demo客户端进程的网络使用情况,如下图所示:
图中115.29.163.**就是我们阿里云测试服务器的IP地址。
如此,就可以知道我们上述的测试方案是可以很好的模拟公网部署运行的实际场景的。
5. 下载测试程序
OMCS视频延迟测试程序:OMCS.Demos.DelayTest.rar
----------------------------------------------------------------------------------------
阅读 更多OMCS开发手册系列文章。
Q Q:168757008