互动视频
  • iOS : Objective-C
  • Android
  • macOS
  • Windows
  • Linux
  • Web
  • 小程序
  • Electron
  • 概述
  • 限制说明
  • SDK 下载
  • 快速开始
  • 常用功能
  • 推拉流进阶
  • 视频进阶
  • 音频进阶
  • 其他功能
  • 废弃接口
  • API 文档
  • 常见错误码
  • 常见问题
  • AI教育
  • KTV 合唱
  • 视频直播
  • 视频通话
  • 游戏直播
  • 直播答题
  • 娃娃机
  • 文档中心
  • 互动视频
  • 常用功能
  • 监测推拉流质量

监测推拉流质量

更新时间:2021-04-25 20:25

1 功能简介

在推流/拉流成功后,SDK 默认每 3 秒触发一次推流/拉流的质量回调,以供用户监测此次通话/直播的音视频质量。

2 推流质量统计

推流质量包含了采集、编码阶段音视频流的帧率、分辨率,传输(发送)的音视频流的帧率、码率、延时及丢包率。

返回推流质量的回调: ZegoLivePublisherDelegate onPublishQualityUpdate:quality:,默认每 3 秒触发一次。

2.1 推流采集质量

推流采集质量贴近用户预览时的主观感受。

推流时 SDK 在采集阶段的音视频质量的相关参数如下:

  • acapFps:音频采集帧率(fps)
  • cfps:推流前设置的视频采集帧率(fps)

2.2 推流编码质量

推流时 SDK 在编码阶段的音视频质量的相关参数如下:

  • vencFps:当前编码器的目标视频编码帧率(fps)
  • width:推流前设置的视频编码分辨率宽
  • height:推流前设置的视频编码分辨率高

2.3 推流传输(发送)质量

推流发送质量是实际推流的质量,与设置的编码分辨率和实际的网络质量相关。

推流传输的音视频质量的相关参数如下:

  • afps:实际的音频发送帧率(fps)
  • akbps:实际的音频发送码率(Kbps)
  • fps:实际的视频发送帧率(fps)
  • kbps:实际的视频发送码率(Kbps)
  • quality:当前的网络质量,0-优,1-良,2-中,3-差
  • rtt:设备到 ZEGO Server 的往返延时(ms)
  • pktLostRate:设备上行丢包数([0,255]),丢包率 = 丢包数 / 255

3 拉流质量统计

拉流质量包含了传输(接收)的音视频流的帧率、码率、延时和丢包率,解码阶段音视频流的帧率和分辨率,以及渲染阶段的帧率、分辨率、卡顿率、卡顿时长、音视频整体质量及首帧耗时。

返回拉流质量的回调: ZegoLivePlayerDelegate onPlayQualityUpate:quality:,默认每 3 秒触发一次。

3.1 拉流传输(接收)质量

拉流接收质量是实际的拉流质量,与实际的推流质量和当前的网络质量相关。

拉流时接收的音视频质量的相关参数如下:

  • afps:实际接收的音频帧率(fps)
  • akbps:实际接收的音频码率(Kbps)
  • audioBreakRate:实际接收的音频卡顿次数
  • fps:实际接收的视频帧率(fps)
  • kbps:实际接收的视频码率(Kbps)
  • videoBreakRate:实际接收的视频卡顿次数
  • width:实际接收的视频分辨率宽
  • height:实际接收的视频分辨率高
  • rtt:设备到 ZEGO Server 的往返延时(ms)
  • peerToPeerDelay:从推流端推出音视频帧到拉流端拉取到此音视频帧的时间(ms)
  • pktLostRate:设备下行丢包数([0,255]),丢包率 = 丢包数 / 255
  • peerToPeerPktLostRate:从推流端推出音视频帧到拉流端拉取到此音视频帧这段时间的丢包数([0,255]),丢包率 = 丢包数 / 255
  • audioCumulativeBreakCount:音频卡顿累计次数
  • audioCumulativeBreakTime:音频卡顿累计时长(ms)
  • audioCumulativeDecodeTime:音频解码累计时长(ms)
  • videoCumulativeBreakCount:视频卡顿累计次数
  • videoCumulativeBreakTime:视频卡顿累计时长(ms)
  • videoCumulativeDecodeTime:视频解码累计时长(ms)

3.2 拉流渲染质量

拉流渲染质量贴近用户观看音视频的主观感受,该质量受解码器影响可能低于实际接收的拉流质量值。

拉流渲染阶段的音视频质量的相关参数如下:

  • arndFps:实际的音频渲染帧率
  • vrndFps:实际的视频渲染帧率
  • quality:当前的网络质量,0-优,1-良,2-中,3-差
  • 音频卡顿时长:可使用 ZegoLiveEventDelegate zego_onLiveEvent:info: 直播事件回调中的音频卡顿开始 Play_AudioBreak 和音频卡顿结束事件 Play_AudioBreakEnd 的差值获取。
  • 视频卡顿时长:可根据 ZegoLiveEventDelegate zego_onLiveEvent:info: 直播事件回调中的视频卡顿开始 Play_VideoBreak 和视频卡顿结束事件 Play_VideoBreakEnd 的差值获取。
  • 首帧耗时:视频首帧耗时可根据 ZegoLivePlayerDelegate onRecvRemoteVideoFirstFrame: 接收到推流端首帧视频通知的时间与拉流启动时间的差值获取,音频首帧耗时可根据 ZegoLivePlayerDelegate onRecvRemoteAudioFirstFrame: 接收到推流端首帧视频通知的时间与拉流启动时间的差值获取。
  • avTimestampDiff:表示视频时间戳相对于音频时间戳的差值,单位为毫秒。avTimestampDiff < 0 表示视频比音频慢的毫秒数,avTimestampDiff > 0 表示视频比音频快的毫秒数,avTimestampDiff = 0 表示无差别。当 avTimestampDiff <= 200,可基本认为音画同步。当 avTimestampDiff 连续 10s 大于 200 可以认为异常。使用该字段时拉流质量回调周期设置不要超过 3s,回调周期建议保持 SDK 默认值 3s。
本篇目录