性能数据

最近更新时间:2024-03-14 17:19:11

我的收藏
本文档主要围绕开发者最关心的音视频质量、延迟、流畅性、稳定性以及 CPU、内存、耗电、发热等关键指标,在正常弱网环境不同实时互动场景(1v1、1vN等)下进行客观测试及分析总结。

无损及弱网环境下的效果质量

测试场景

视频通话及在线直播的音视频场景和语音通话场景。

参数配置

视频通话:
参数类型
配置信息
分辨率
368 × 640
码率
400 Kbps
帧率
15
互动直播:
参数类型
配置信息
分辨率
720 × 1280
码率
1200 Kbps
帧率
15

极限网络抗性测试数据

极限网络抗性测试指的是在各种网络损伤环境下,测试 SDK 所能承受的最大网络损伤。


说明
具体损失指标及含义请参见 附录1:音视频质量指标说明

音频弱网 MOS 值

数据解读:实时音视频 TRTC 能够在非常不理想的网络环境下以更低延迟的同时保障较高的音质。 以下为实时音视频 TRTC 在以下弱网环境下客观 MOS 评价结果:



客户端 SDK 性能数据

测试设备信息

设备类型
处理器类型
内存
Android 设备1
骁龙625-8核
4G
Android 设备2
骁龙835-8核
6G
iOS 设备1
A8-双核
1G
iOS 设备2
A13-6核
4G

测试参数配置

参数类型
配置信息
分辨率
360 × 640
码率
600 kbps
帧率
15

测试方案说明

测试场景:1v1、1v3、1v6、1v8、1v16、1v32。
测试时长:每个场景均测试30min。
测试方案:用 Linux 推流机器人构造多人场景,各测试设备均独立测试。

测试结果

数据解读:实时音视频 TRTC SDK 在 CPU 使用率、内存占用率、发热、耗电等各项性能表现较好,占用较少的硬件资源即可提供高质量的音视频服务。
*注:其中 1v32 由于低端机无法流畅运行,无测试数据。
App CPU 使用率:




App 内存占用:



系统总 CPU 使用率:



运行30分钟耗电量:



运行30分钟发热增量:




附录1:音视频网络损伤指标说明

网络损伤指标
说明
示例
Loss
网络丢包
50% Loss 代表 10 个包中会丢 5 个包
Delay
代表延迟
200ms Delay 也就是 SDK 发送的包,会经过 200ms 后才被网络发送出去
Jitter
代表抖动
300 Jitter 也就是 SDK 发送的包,有概率随机推迟 20ms、280ms、50ms、250ms 等发出去,最大延迟为 300ms,平均延迟为 150ms

附录2:网络损伤下的效果数据说明


效果数据

说明
MOS 值
常以衡量通信系统语音质量的重要指标。客观 MOS 值采用 Spirent Nomad 设备进行 POLQA 打分,分数越高代表音质越好
端到端延时
端对端延时指从发送端音频采集到接收端播放的耗时

极限音视频抗性测试标准

加网络损伤之后,分别使用 Spirent Nomad 设备进行 POLQA 打分、使用 foreman 视频序列发送后在接收端检测帧间隔情况,持续观察 10 分钟以上,取 30 个数据点,若有 3 分钟 3 次以上主观可感知的效果异常或者 1 次较长时间的不可用现象,即视为超过抗性能力
注意

POLQA
(感知客观语音质量评估)标准,即基于 ITU P.863 国际标准进行打分,适用于人声评测。POLQA 是全球通用的可针对各种网络场景的语音质量分析标准。

附录3:SDK 性能指标说明

指标类型
说明
App CPU 使用率
Android
App CPU 表示进程未规范化 CPU 使用率,统计结果和 Android Studio Profiler 一致。
iOS
App CPU 表示进程 CPU 使用率,统计结果和 Xcode 一致。PerfDog 使用率 = Xcode 使用率 / 核心数
系统 CPU 使用率
Android
Total CPU 表示整机未规范化 CPU 使用率,统计结果和 Android Studio Profiler 一致。
iOS
Total CPU 表示整机 CPU 使用率,统计结果和 Xcode 一致。PerfDog 使用率 = Xcode 使用率 / 核心数
内存使用率
Android
PSS Memory,统计结果和 Android Java API 标准结果一致,与 Meminfo 也一致。
iOS
Xcode Memory,XCode Debug gauges 统计方式。
耗电量
测试时监控电量从 100% 掉到 99% 的时候开始记录,设置结束电量值,根据比例计算30分钟的耗电量。
发热增量
未启动 App 使用测温枪统计当前温度,启动 App 在每个场景下运行30分钟。
发热增量 = 30分钟后的温度 - 未启动 App 时温度。