通话质量统计
本文主要介绍 SDK 如何对通话过程中的网络以及音视频的质量进行监控。
获取通话中的质量监测信息前,请确保您已经加入了房间并且已经发布或订阅了相关的音视频 Track。
上下行网络质量
获取本地上下行网络质量
在加入了房间并且订阅了音视频 Track 后,可通过 QNRTCClientDelegate.didNetworkQualityNotified 回调来获取本地的上下行网络质量。每隔 3s 会回调一次当前的网络上下行质量信息,质量等级可参考 QNNetworkGrade。
其中,质量等级是基于当前用户通话过程中的网络、丢包以及 RTT 综合评估得出的。
获取远端上下行网络质量
不同于本地上下行网络质量的监听获取方式,远端上下行网络质量需主动调用接口获取,您可在需要的时候调用 QNRTCClient.getUserNetworkQuality 接口获取当前房间内所有远端用户的上下行质量信息。其中,获取到的质量等级可参考 QNNetworkGrade。
音频质量统计
获取本地音频质量统计
SDK 质量统计接口均为主动调用接口,您可以在适当的时机通过调用 QNRTCClient.getLocalAudioTrackStats 接口获取当前本地的音频质量统计信息,并通过 trackID 来获取对应轨道的质量统计。获取到的质量统计内容 QNLocalAudioTrackStats 主要包含如下信息:
属性 | 描述 |
---|---|
uplinkBitrate | 本地音频上行的码率,单位 bps |
uplinkRTT | 本地音频上行的网络延时,单位 ms |
uplinkLostRate | 本地音频上行的丢包率,范围 [0, 100] |
获取远端音频质量统计
SDK 质量统计接口均为主动调用接口,您可以在适当的时机通过调用 QNRTCClient.getRemoteAudioTrackStats 接口获取当前远端的音频质量统计信息,并通过 trackID 来获取对应轨道的质量统计。获取到的质量统计内容 QNRemoteAudioTrackStats 主要包含如下信息:
属性 | 描述 |
---|---|
downlinkBitrate | 本地拉取远端音频时下行的码率,单位 bps |
downlinkLostRate | 本地拉取远端音频时下行的丢包率,范围 [0, 100] |
uplinkRTT | 远端音频上行的网络延时,单位 ms |
uplinkLostRate | 远端音频上行的丢包率,范围 [0, 100] |
视频质量统计
获取本地视频质量统计
SDK 质量统计接口均为主动调用接口,您可以在适当的时机通过调用 QNRTCClient.getLocalVideoTrackStats 接口获取当前本地的视频质量统计信息,并通过 trackID 来获取对应轨道的质量统计。获取到的质量统计内容 QNLocalVideoTrackStats 主要包含如下信息:
属性 | 描述 |
---|---|
profile | 当前所统计视频的质量等级,profile 说明亦可参考视频大小流文档 |
uplinkFrameRate | 本地视频上行的帧率 |
uplinkBitrate | 本地视频上行的码率,单位 bps |
uplinkRTT | 本地视频上行的网络延时,单位 ms |
uplinkLostRate | 本地视频上行的丢包率,范围 [0, 100] |
uplinkFrameWidth | 本地编码输出的视频宽度 |
uplinkFrameHeight | 本地编码输出的视频高度 |
captureFrameRate | 本地实际采集到的视频帧率 |
captureFrameWidth | 本地采集视频帧宽度 |
captureFrameHeight | 采集视频帧宽高度 |
targetFrameRate | 期望的视频帧率 |
targetFrameWidth | 期望的视频帧宽度 |
targetFrameHeight | 期望的视频帧高度 |
获取远端视频质量统计
SDK 质量统计接口均为主动调用接口,您可以在适当的时机通过调用 QNRTCClient.getRemoteVideoTrackStats 接口获取当前远端的视频质量统计信息,并通过 trackID 来获取对应轨道的质量统计。获取到的质量统计内容 QNRemoteVideoTrackStats 主要包含如下信息:
属性 | 描述 |
---|---|
profile | 当前订阅的视频的质量等级,profile 说明亦可参考视频大小流文档 |
downlinkFrameRate | 本地拉取远端视频时下行的帧率 |
downlinkBitrate | 本地拉取远端视频时下行的码率,单位 bps |
downlinkLostRate | 本地拉取远端视频时下行的丢包率,范围 [0, 100] |
uplinkRTT | 远端视频上行的网络延时,单位 ms |
uplinkLostRate | 远端视频上行的丢包率,范围 [0, 100] |
uplinkFrameWidth | 远端用户编码输出的视频宽度 |
uplinkFrameHeight | 远端用户编码输出的视频高度 |
示例代码
上述已经简单介绍了质量统计信息的获取方式,相对应的示例代码可参考 API-Examples-iOS。