名词解释
本文解释通话调查功能相关的指标与诊断项。
除特殊说明外,本文中的名词解释对声网 RTC Native SDK(以下简称 “Native”)和声网 RTC Web SDK(以下简称 “Web”)都适用。
基础概念
频道
使用声网 SDK 进行的所有通话都是在频道内发生的。我们把一个 App 比作一栋大楼的话,频道就好比大楼里面的一个房间。
通话
一个频道内可以发生多次通话。第一个用户加入频道,代表通话开始;频道内所有用户都离开频道,代表这次通话结束。从第一个用户加入频道到最后一个用户离开频道的这段时间称为一次通话。最后一个用户离开频道后,该频道可以用于开始一次新的通话。
用户
通话中的每个用户都有唯一的用户 ID,即 uid
或 userId
,用于标识在实时音视频互动频道中的用户。App ID 一致的前提下,用户 ID 是用户的唯一标识符。
发送端用户/主播
在通话中发送过音频或视频流的用户。
接收端用户/观众
在通话中接收过音频或视频流的用户。一个接收端用户可以同时接收多个发送端用户的音视频流。
音频卡顿率
音频卡顿率仅适用于 RTC Native SDK。
音频卡顿是指音频无渲染持续超过 200 ms。一次音频卡顿持续的时长称为音频卡顿时长。
音频卡顿率 = (单位时间内音频卡顿时长之和 ÷ 单位时间内音频总时长)× 100%。
每个用户和通话都有对应的音频卡顿率,区别如下:
- 对用户来说,音频总时长是该用户订阅的所有音频流的时长之和,即按流计算。详见按频道人数计时和按流计时有什么区别?
- 对通话来说,音频总时长是该通话中所有用户的音频总时长之和。
视频卡顿率
视频卡顿是指:
- Native:视频无渲染持续超过 600 ms。
- Web:视频无渲染持续超过 500 ms。
一次视频卡顿持续的时长称为视频卡顿时长。
视频卡顿率 = (单位时间内视频卡顿时长之和 ÷ 单位时间内视频总时长)× 100%。
每个用户和通话都有对应的视频卡顿率,区别如下:
- 对用户来说,视频总时长是该用户订阅的所有视频流的时长之和,即按流计算。详见按频道人数计时和按流计时有什么区别?
- 对通话来说,视频总时长是该通话中所有用户的视频总时长之和。
通话级别指标
ACU(累计通话人数)
加入过该通话的用户总数。
PCU(最大同时在线人数)
通话过程中同时在线人数的峰值。
通话持续时间
从通话开始到通话结束经过的时间,也就是从频道内第一个用户进入到最后一个用户离开经过的时间。
用户级别指标
总通话时长
用户在这个通话中第一次加入频道到最后一次离开频道所经过的时间。在一个通话中,如果用户多次加入和离开频道,该时长不能准确反映用户在频道内的总时间。
在线时长
用户实际参加通话的时长。在一个通话中,如果用户多次加入和离开频道,该时长是用户每次在频道内时间的累加,能够准确反映用户在频道内的总时间。
码率
码率是指数据传输时单位时间传送的数据位数。
音频码率越高则音质越好,视频同理。码率低不一定会导致通话质量问题,但是过低的码率往往意味着音视频质量较差。
发送端指标 | 接收端指标 | 说明 |
---|---|---|
音频发送码率 | 音频接收码率 | / |
视频大流发送码率 | Web 端只接收一路视频流,因此视频接收码率不区分大小流。网络情况不佳时,会自动接收小流。 | |
视频小流发送码率 | 同上 |
丢包(率)
丢包是指在数据传输过程中发生的数据包丢失,以百分比表示。
轻微的丢包通常不会影响用户的体验,丢包率过高(超过 5%)意味着网络质量较差,可能会导致音视频卡顿、视频模糊等问题。
由于平台特性,丢包率存在两种计算方式:
-
方式一:重传后的最终丢包率
丢包率 = ( 1 - 接收成功的包数 / 总发包数 ) × 100%
-
方式二:实际传输中的丢包率
丢包率 = [ 1 - 接收成功的包数 / (总发包数 + 重传的包数 )] × 100%
Native 和 Web SDK 的指标名称和采取的计算方式如下
发送端指标 | 接收端指标 |
---|---|
卡顿时间
接收端指标 | 说明 |
---|---|
音频渲染卡顿时间(仅支持 Native) | 音频渲染卡顿是指音频无渲染持续超过 200 ms。音频渲染卡顿时间越长,用户体验到的音频卡顿越明显。 |
视频渲染卡顿时间 |
帧率
帧率是称为帧的位图图像连续出现在显示器上的速率。
帧率越高视频越流畅,同时也需要更多的带宽和 CPU。帧率过低会造成视觉卡顿或模糊,一般低于 5fps 需要重点关注。
发送端指标 | 接收端指标 | 说明 |
---|---|---|
视频采集帧率 | / | / |
视频大流发送帧率 | Web 端只接收一路视频流,因此视频接收帧率不区分大小流。网络情况不佳时,会自动接收小流。 | |
视频小流发送帧率 | 同上 |
分辨率
分辨率是指图像的宽和高的像素值。
接收的视频画面分辨率越高(像素值越大),视频的画面越清晰。
发送端指标 | 接收端指标 | 说明 |
---|---|---|
视频大流发送分辨率 | Web 端只接收一路视频流,因此视频接收分辨率不区分大小流。网络情况不佳时,会自动接收小流。 | |
视频小流发送分辨率(仅支持 Web) | 同上 |
音频信号强度
音频信号强度表征音量大小。一般低于 80 需要重点关注。
发送端指标 | 接收端指标 |
---|---|
音频采集信号强度 | 音频播放信号强度 |
网络和设备状态
以下指标目前仅支持 RTC Native SDK。
指标名称 | 说明 |
---|---|
Wi-Fi 或 LAN 信号质量 | 客户端到本地路由器的往返时延 (ms),可表征 Wi-Fi 或 LAN 的信号质量。一般大于 500 ms 时需重点关注。 |
App CPU 占用 | 当前 App 的 CPU 占用率。如果用户使用的设备性能较差,App CPU 占用率可能会过高,造成音视频卡顿。该指标在模拟器和 M1 转译环境下无法获取。 |
系统 CPU 占用 | 系统的 CPU 占用率。如果用户使用的设备性能较差,系统 CPU 占用率可能会过高,造成音视频卡顿。该指标在模拟器和 M1 转译环境下无法获取。 |
SDK 任务调度延迟 | 该指标代表 SDK 的工作线程任务调度的时间间隔 (ms),可以间接反映系统的性能。一般大于 80 ms 时需重点关注。 |
诊断项
以下诊断项目前仅支持 RTC Native SDK。
通话体验诊断
诊断项 | 说明 |
---|---|
视频卡顿 | 用户可能感受到较为明显的视频卡顿。一般是因为用户的设备与网络情况不佳,需进一步查看指标定位具体原因。 |
视频模糊 | 用户可能感受到视频模糊不清。需进一步查看用户的分辨率、设备和网络情况。 |
听不见声音 | 用户持续听不到声音。可结合接收端用户事件与发送端用户的音频发送情况进一步确认是否为异常,并进一步定位原因。 |
音频卡顿 | 用户可能感受到较为明显的音频卡顿。一般是因为用户的设备与网络情况不佳,需进一步查看指标定位具体原因。 |
主播诊断
诊断项 | 说明 |
---|---|
视频采集帧率低 | 视频采集帧率持续低于 3 fps。该异常可能导致接收端用户视频卡顿、模糊等体验问题。 |
视频输出帧率低 | 视频编码帧率过低,可能由发送端用户 CPU 占用过高或网络丢包引起。该异常可能导致接收端用户视频卡顿、模糊等体验问题。 |
无音频输出 | 发送端用户持续未发送音频,需进一步结合关键事件判断是否为异常。该异常可能导致接收端持续听不见声音。 |
音频采集频率低 | 该异常可能导致接收端用户音频卡顿问题。 |
音频发送端系统繁忙 | 音频发送端用户系统主线程繁忙。该异常可能导致接收端用户音频卡顿问题。 |
音频发送端网络不佳 | 可能由上行网络拥塞、丢包过高或 Wi-Fi 信号不佳引起。该异常可能导致接收端用户音频卡顿问题。 |