human: 如何处理七牛云的实时音视频通话质量统计

gpt: [实时音视频](https://developer.qiniu.com/rtc) > 使用指南 > iOS >通话质量统计

#  通话质量统计

最近更新时间: 2023-09-05 16:04:34

本文主要介绍 SDK 如何对通话过程中的网络以及音视频的质量进行监控。

> 获取通话中的质量监测信息前，请确保您已经**加入了房间** 并且**已经发布或订阅了相关的音视频 Track** 。

# 上下行网络质量

## 获取本地上下行网络质量

在**加入了房间** 并且**订阅了音视频 Track** 后，可通过
[QNRTCClientDelegate.didNetworkQualityNotified](https://developer.qiniu.com/rtc/api/9248/QNRTCClientDelegate#didNetworkQualityNotified)
回调来获取本地的上下行网络质量。每隔 3s 会回调一次当前的网络上下行质量信息，质量等级可参考 QNNetworkGrade。

其中，质量等级是基于当前用户通话过程中的网络、丢包以及 RTT 综合评估得出的。

## 获取远端上下行网络质量

不同于本地上下行网络质量的监听获取方式，远端上下行网络质量需**主动调用接口获取** ，您可在需要的时候调用
[QNRTCClient.getUserNetworkQuality](https://developer.qiniu.com/rtc/api/8836/QNRTCClient-
iOS#getUserNetworkQuality) 接口获取当前房间内所有远端用户的上下行质量信息。其中，获取到的质量等级可参考
[QNNetworkGrade](https://developer.qiniu.com/rtc/api/9254/QNTypeDefines#QNNetworkGrade)。

# 音频质量统计

## 获取本地音频质量统计

SDK 质量统计接口均为**主动调用接口** ，您可以在适当的时机通过调用
[QNRTCClient.getLocalAudioTrackStats](https://developer.qiniu.com/rtc/api/8836/QNRTCClient-
iOS#getLocalAudioTrackStats) 接口获取当前本地的音频质量统计信息，并通过 trackID
来获取对应轨道的质量统计。获取到的质量统计内容
[QNLocalAudioTrackStats](https://developer.qiniu.com/rtc/api/8871/QNLocalAudioTrackStats-
iOS) 主要包含如下信息：

属性| 描述  
---|---  
uplinkBitrate| 本地音频上行的码率，单位 bps  
uplinkRTT| 本地音频上行的网络延时，单位 ms  
uplinkLostRate| 本地音频上行的丢包率，范围 [0, 100]  
  
## 获取远端音频质量统计

SDK 质量统计接口均为**主动调用接口** ，您可以在适当的时机通过调用
[QNRTCClient.getRemoteAudioTrackStats](https://developer.qiniu.com/rtc/api/8836/QNRTCClient-
iOSt#getRemoteAudioTrackStats) 接口获取当前远端的音频质量统计信息，并通过 trackID
来获取对应轨道的质量统计。获取到的质量统计内容
[QNRemoteAudioTrackStats](https://developer.qiniu.com/rtc/api/8868/QNRemoteAudioTrackStats-
iOS) 主要包含如下信息：

属性| 描述  
---|---  
downlinkBitrate| 本地拉取远端音频时下行的码率，单位 bps  
downlinkLostRate| 本地拉取远端音频时下行的丢包率，范围 [0, 100]  
uplinkRTT| 远端音频上行的网络延时，单位 ms  
uplinkLostRate| 远端音频上行的丢包率，范围 [0, 100]  
  
# 视频质量统计

## 获取本地视频质量统计

SDK 质量统计接口均为**主动调用接口** ，您可以在适当的时机通过调用
[QNRTCClient.getLocalVideoTrackStats](https://developer.qiniu.com/rtc/api/8836/QNRTCClient-
iOSt#getLocalVideoTrackStats) 接口获取当前本地的视频质量统计信息，并通过 trackID
来获取对应轨道的质量统计。获取到的质量统计内容
[QNLocalVideoTrackStats](https://developer.qiniu.com/rtc/api/8870/QNLocalVideoTrackStats-
iOS) 主要包含如下信息：

属性| 描述  
---|---  
profile|
当前所统计视频的[质量等级](https://developer.qiniu.com/rtc/api/9254/QNTypeDefines#QNTrackProfile)，profile
说明亦可参考[视频大小流](https://developer.qiniu.com/rtc/development_guidelines/9259/multi-
stream-iOS)文档  
uplinkFrameRate| 本地视频上行的帧率  
uplinkBitrate| 本地视频上行的码率，单位 bps  
uplinkRTT| 本地视频上行的网络延时，单位 ms  
uplinkLostRate| 本地视频上行的丢包率，范围 [0, 100]  
uplinkFrameWidth| 本地编码输出的视频宽度  
uplinkFrameHeight| 本地编码输出的视频高度  
captureFrameRate| 本地实际采集到的视频帧率  
captureFrameWidth| 本地采集视频帧宽度  
captureFrameHeight| 采集视频帧宽高度  
targetFrameRate| 期望的视频帧率  
targetFrameWidth| 期望的视频帧宽度  
targetFrameHeight| 期望的视频帧高度  
  
## 获取远端视频质量统计

SDK 质量统计接口均为**主动调用接口** ，您可以在适当的时机通过调用
[QNRTCClient.getRemoteVideoTrackStats](https://developer.qiniu.com/rtc/api/8836/QNRTCClient-
iOSt#getRemoteVideoTrackStats) 接口获取当前远端的视频质量统计信息，并通过 trackID
来获取对应轨道的质量统计。获取到的质量统计内容
[QNRemoteVideoTrackStats](https://developer.qiniu.com/rtc/api/8867/QNRemoteVideoTrackStats-
iOS) 主要包含如下信息：

属性| 描述  
---|---  
profile|
当前订阅的视频的[质量等级](https://developer.qiniu.com/rtc/api/9254/QNTypeDefines#QNTrackProfile)，profile
说明亦可参考[视频大小流](https://developer.qiniu.com/rtc/development_guidelines/9259/multi-
stream-iOS)文档  
downlinkFrameRate| 本地拉取远端视频时下行的帧率  
downlinkBitrate| 本地拉取远端视频时下行的码率，单位 bps  
downlinkLostRate| 本地拉取远端视频时下行的丢包率，范围 [0, 100]  
uplinkRTT| 远端视频上行的网络延时，单位 ms  
uplinkLostRate| 远端视频上行的丢包率，范围 [0, 100]  
uplinkFrameWidth| 远端用户编码输出的视频宽度  
uplinkFrameHeight| 远端用户编码输出的视频高度  
  
# 示例代码

上述已经简单介绍了质量统计信息的获取方式，相对应的示例代码可参考 [API-Examples-iOS](https://github.com/pili-
engineering/QNRTC-iOS/blob/master/QNRTC-API-Examples/Api-Examples-
iOS/Module/Other/ConnectQuality/ConnectQualityExample.m)。

以上内容是否对您有帮助？