一、测试场景
视频通话及在线直播的音视频场景和语音通话场景。
二、参数配置
·视频通话:
| 参数类型 | 配置信息 |
| 分辨率 | 368 × 640 |
| 码率 | 400 Kbps |
| 帧率 | 15 |
·互动直播:
| 参数类型 | 配置信息 |
| 分辨率 | 720 × 1280 |
| 码率 | 1200 Kbps |
| 帧率 | 15 |
三、极限网络抗性测试数据
极限网络抗性测试指的是在各种网络损伤环境下,测试 SDK 所能承受的最大网络损伤。
| 音视频场景的视频抗性极限*(iPhone XR to 小米9) | | | |
| 场景 | | 在线直播 | 视频通话 |
| 上行 | 可承受的最大丢包率 | 55% loss | 65% loss |
| | 可承受的最大网络抖动(jitter) | 1200 ms | 1700 ms |
| | 可流畅通话的最低带宽要求 | 500 Kbps | 250 Kbps |
| | 混合损伤条件(loss + jitter) | 20% loss + 300ms | 40% loss + 700ms |
| | 混合损伤条件(loss + delay) | 20% loss + 350ms | 40% loss + 700ms |
| 下行 | 可承受的最大丢包率 | 70% loss | 65% loss |
| | 可承受的最大网络抖动(jitter) | 1700ms | 1600ms |
| | 混合损伤(loss + jitter) | 40% loss + 800ms | 40% loss + 700ms |
| | 混合损伤(loss + delay) | 40% loss + 650ms | 40% loss + 600ms |
注意:说明:
注意:具体损失指标及含义请参见 附录1:音视频质量指标说明。
四、音频弱网 MOS 值
数据解读:实时音视频 TRTC 能够在非常不理想的网络环境下,在保持更低延迟的同时保障较高音质。
以下为实时音视频 TRTC 在以下弱网环境下客观 MOS 评价结果:
| 音频弱网 MOS 分测试 | | | | | |
| 场景 | | Android to Android(小米8 to 小米9) | | iOS to iOS(iPhone6 to iPhone6s) | |
| | | score | 延迟(ms) | score | 延迟(ms) |
| 上行/下行 | 无损 | 4.75 | 186 | 4.74 | 209.48 |
| 上行 | 75% loss | 3.82 | 570.7 | 3.82 | 554 |
| | 2000 jitter | 4.28 | 1362 | 4.32 | 1460 |
| | 55% loss + 1200 jitter | 3.59 | 1570 | 3.57 | 1599 |
| 下行 | 70% loss | 4.03 | 552 | 4.08 | 640.9 |
| | 2000 jitter | 3.53 | 1584 | 3.68 | 1589.78 |
| | 50% loss + 900 jitter | 4.04 | 1392 | 3.93 | 1418 |
五、测试设备信息
| 设备类型 | 处理器类型 | 内存 |
| 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 时温度。 | |