当前位置:首页 > > 充电吧
[导读]作者:七牛云本篇是《视频直播技术详解》系列的最后一篇直播云 SDK 性能测试模型,SDK 的性能对最终 App 的影响非常大。SDK 版本迭代快速,每次发布前都要进行系统的测试,测试要有比较一致的行为

作者:七牛云

本篇是《视频直播技术详解》系列的最后一篇直播云 SDK 性能测试模型,SDK 的性能对最终 App 的影响非常大。SDK 版本迭代快速,每次发布前都要进行系统的测试,测试要有比较一致的行为,要有性能模型作为理论基础,对 SDK 的性能做量化评估。本文就是来探讨影响 SDK 性能的指标并建立相应的性能模型的。

 

影响视频质量和大小的重要参数

在进行测试之前我们需要明确几个对视频的质量和大小影响最大的参数:帧率、码率和分辨率。

1)如何制定帧率

一帧就是一副静止的画面,连续的帧就形成动画,如电视图象等。我们通常说帧数,简单地说,就是在 1 秒钟时间里传输的图片的数,也可以理解为图形处理器每秒钟能够刷新几次,通常用 fps(Frames Per Second)表示。每一帧都是静止的图象,快速连续地显示帧便形成了运动的假象。高的帧率可以得到更流畅、更逼真的动画。每秒钟帧数 (fps) 愈多,所显示的动作就会愈流畅。

2)如何制定码率

我们首先看视频编码的目的,它是为了在有限的带宽中传输尽可能清晰的视频,我们以每秒 25 帧的图像举例,25 帧图像中定义了 GOP 组,目前主要是有 I,B,P 帧三种帧格式,I 帧是关键帧,你可以想象它就是一幅 JPEG 压缩图像,而 B,P 帧是依靠 I 帧存在的,如果丢失了 I 帧,B,P 帧是看不到图像的,B,P 帧描述的不是实际的图像像素内容,而是每个相关像素的变化量,他们相对于 I 帧信息量会很小。GOP 组是指一个关键帧I帧所在的组的长度,每个 GOP 组只有 1 个 I 帧。

我们再来看,一组画面的码流大小跟什么有关?当视频编码的压缩方式都一样,清晰度要求都一样的时候,GOP 组的长度格式决定了码流的大小,例如:每秒 25 帧画面,GOP 组长度为 5,那么帧格式为 IBPBP,那么 1 秒钟有 5 个 I 帧,10 个 B 帧,10 个 P 帧,如果 GOP 组长度为 15,帧格式就是 IBBPBBPBBPBBPBB,那么 1 秒钟内会有 2 个 I 帧和 16 个 B 帧和 7 个 P 帧,那么 5 个 I 帧比 2 个 I 帧占用的数据信息量大,所以 GOP 组的长度格式也决定了码流的大小。

3)如何指定分辨率

分辨率概念视频分辨率是指视频成像产品所成图像的大小或尺寸。常见的视像分辨率有 640×480,1088×720,1920×1088。在成像的两组数字中,前者为图片长度,后者为图片的宽度,两者相乘得出的是图片的像素。

 影响 SDK 性能的指标

有了上述的前置知识,我们可以开始准备测试 SDK 的性能了,我们首先分析一下都有哪些指标可以反映 SDK 的性能,分成 Android 和 iOS 两个平台:

Android

GC :可以通过 GC 日志记录,Mirror GC 和 Full GC 的频次和时间,Full GC 会造成比较明显的卡顿,需要评估UI Loop 就是 VSync Loop :反映 SDK 对 App 流畅度的影响,理论上 60 fps 是最流畅的值。Memory :反映 SDK 占用内存的大小CPU Usage :反映 SDK 占用计算资源的大小

iOS

UI Loop :反映 SDK 对 App 流畅度的影响,理论上 60 fps 是最流畅的值。Memory :反映 SDK 占用内存的大小CPU Usage :反映 SDK 占用计算资源的大小

除了上面的一些系统级别的指标外,下面是直播 SDK 中特有的一些指标,这些指标可以反映出 SDK 的核心竞争力和一些主要的差异,涉及到视频的清晰度和流畅度,也是可以量化的。

1)影响视频清晰度的指标

帧率码率分辨率量化参数(压缩比)

2)影响视频流畅度的指标

码率帧率

3)其他重要指标

直播是流量和性能的消耗大户,有一些指标,直接影响了用户的感受,也是我们需要重点关注的:

耗电量发热(不好量化,大部分情况发热和耗电量正比,可以使用耗电量暂时替代) 测试计划

测试过程需要先固化一些测试条件,然后根据不同的测试条件得出测试结果,这里选择了两个现在最常见的条件,是我们通过回访大量的客户得出的一些统计数字,可以反映大部分直播应用所处的场景。主要从分辨率、视频处理、码率和网络环境几个维度进行限制。
最后分为几个两种测试指标:客观和主观指标,前者反映了 SDK 对系统的消耗程度,但虽说是客观指标并不是说对用户没有影响、只是说得出的结果用户感受不明显。主观指标则会直接影响最终用户体验,但在传统的测试中反而容易被忽略,因为不好量化,这里拍砖引玉的提出一些量化的方式,希望引起读者的思考。

测试条件 A

分辨率 480p无水印,无美颜码率 1 M网络保证在 0.5 M ~ 2 M

这个条件,反映了大部分低速网络情况下的使用场景,也反映了 SDK 基本的性能情况,可以作为 SDK 基本推流和拉流情况下的基准测试,不引入太多的测试依赖。

测试条件 B

分辨率 720p无水印,有美颜码率 1 M网络保证在 0.5 M ~ 2 M

这个条件,反映了大部分客户的使用场景,具有较高的分辨率和美颜视频处理,可以作为 SDK 竞品分析的重要依据,测试结果非常接近真实场景。

1)客观指标测试计划
客观影响 App 稳定性和性能的指标:

Memory测试 10 分钟,内存曲线测试 1 小时,TP99,TP95,TP90,需要归档测试 1 小时,内存增量,考察是否有内存泄露,需要归档参考值:上次结果CPU测试 10 分钟,CPU Usage 曲线测试 10 分钟,TP99,TP95,TP90,需要归档参考值:上次结果码率测试 10 分钟,TP99,TP95,TP90,重点说明,这里的码率控制需要分开来看,如果网络抖动造成码率降低,这样的点不计入进来,只测试 SDK 码率控制,需要归档参考值:1 M(大小都是偏差)耗电量测试一小时,记录进程总耗电量、屏幕显示耗电量、CPU 耗电量,需要归档参考值:上次结果

2)主观指标测试计划
主观影响 App 使用者的指标:

UI Loop App 本身可以达到的最大帧率,不同于视频帧率,统计他的原因是我们的 SDK 可能会影响整个 App 的流畅度,需要跟踪测试 10 分钟,UI Loop 曲线测试 10 分钟,UI Loop TP99,TP95,TP90,需要归档反复比较参考值:60 fpsAndroid GC测试 1 小时,记录 Mirror GC 和 Full GC 的频次,记录 GC 时长的 TP99,TP95,TP90,需要归档反复比较参考值:上次结果帧率(fps)测试 10 分钟,TP99,TP95,TP90,需要归档反复比较参考值:30 fpsPSNR 比较视频清晰度的指标测试 10 分钟,需要归档反复比较,这个指标可以使用固定视频作为输入。参考值:上次结果

3)结果显示

表格显示具体指标曲线显示原始数据和时间轴的数据热图显示和参考值的偏差热图显示距离上次归档值是改善了还是恶化了

通过这种反复迭代的自动化的、系统化的测试,我们以职人之心近乎偏执地反复打磨着 SDK 的性能,只为给最终用户带来最好的直播体验,帮助我们的客户通过次时代的媒体最大化自己的商业价值,我们希望在您披荆斩棘的路上我们始终相伴。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

机缘巧合最近接触了一下瑞芯微的rk3568平台,从拿到sdk到完整编译跑起来,遇到了一些坑,分享给大家。

关键字: 瑞芯微 rk3568 sdk

事实证明,尽管官方发布的Ice Cream Sandwich距三星Galaxy Nexus的正式发布还有几天,但该搜索引擎巨头还是决定让所有人都知道会发生什么。几个小时前,我们宣布已发布了备受期待的Android 4.0...

关键字: android4.0 sdk mydroidworld

今日,《移动互联网应用程序(App) SDK安全指南》(以下简称《指南》)编制工作研讨会在北京召开。据悉,该《指南》将会是国内首个关于SDK安全的国家标准。 此前,全国信息安全标准化技术委员会公示了2

关键字: app sdk 国家标准

  CSR公司日前宣布推出CSRatlas7™ ,这是一款面向汽车制造商的高度集成的低成本预装影音解决方案,旨在帮助整个行业应对复杂性的挑战并满足其对互操作性的需求。通过将娱乐信息系

关键字: homekit nrf51 sdk 低功耗 蓝牙智能

  之前我们对LED智能照明的“热现象”进行了“冷思考”,从行业、产品、市场三个方面分析了智能照明的发展现状。步入2016年,智能照明又将走向何方

关键字: sdk 车联网 okdrive

  11月8日消息,AR领域的创业公司亮风台推出第二代AR移动眼镜。去年11月,亮风台推出了首款双目AR眼镜原型机。时隔一年,这支来自上海的IT老兵队伍推出了二代HiAR Glasses,在体验

关键字: ar眼镜 sdk

7月30日消息,据工信部发布的消息,为切实加强用户个人信息保护,按照2020年信息通信行业行风建设暨纠风工作安排,工业和信息化部7月29日下午在京召开会议,部署开展纵深推进APP侵害用户权益专项整治行

关键字: app sdk 工信部

8月1日消息 今日,中国互联网金融协会发布了。提示指出,央视在近期举办的 2020 年 “3·15”晚会报道了 SDK(Software Development Kit,即 “软件开发工具包”)违规超

关键字: sdk

百度大脑离线面部识别SDK是一款在设备端定位相应面部识别算法的产品。它包括面部检测和检测,实时多模式检测,面部比较和检测等功能,可以在没有网络的环境中使用。全面的功能,例如身份验证,驾驶员状况分析,注意力识别和离线面部属...

关键字: ARM Linux sdk

硅谷三维人机交互公司uSens凌感近日发布新版Fingo SDK,在手势算法底层进行了突破性改进,新增一系列双手交互动作,如握拳、手心写字、十指交叉等,在同类产品中,率先实现对大面积遮挡的双手交

关键字: sdk usens凌感 手势识别
关闭