RTCOutboundRtpStreamStats: qualityLimitationDurations 属性

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

实验性: 这是一项实验性技术
在生产中使用此技术之前,请仔细检查浏览器兼容性表格

RTCOutboundRtpStreamStats 字典的 qualityLimitationDurations 属性是一个映射表(map),记录了媒体流的质量在编码过程中被编解码器降低的原因,以及由于每个原因导致质量降低的持续时间。

这种质量降低可能包括帧率或分辨率降低,或者压缩因子增加等变化。这些信息可用于诊断吞吐量问题和优化性能。

注意: 此属性仅存在于视频媒体中。

这是一个 Map,它将质量限制原因映射到一个数字,该数字表示流由于该原因被限制质量的持续时间(以秒为单位)。

允许的质量限制原因值为字符串

none

质量没有被限制。

cpu

质量主要受限于 CPU 负载。

bandwidth

质量主要受限于带宽估计期间的拥塞提示,例如到达间隔时间(inter-arrival time)和往返时间(round-trip time)。

其他

质量主要受限于上述以外的其他原因。

示例

获取流被质量限制的总时间

所有条目(除了 qualityLimitationDurations["none"])的总和,即为流被限制的总时间。

js
// Get the outbound RTP stream stats
pc.getStats().then((stats) => {
  stats.forEach((report) => {
    if (report.type === "outbound-rtp") {
      const qualityLimitations = report.qualityLimitationDurations;
      if (qualityLimitations) {
        let totalTimeLimited = 0;

        console.log("Quality Limitations:");
        qualityLimitations.forEach((duration, reason) => {
          console.log(`- ${reason}: ${duration} seconds`);
          if (reason !== "none") {
            totalTimeLimited += duration;
          }
        });
        console.log(`Total time limited: ${totalTimeLimited}`);
      }
    }
  });
});

规范

规范
WebRTC 统计 API 的标识符
# dom-rtcoutboundrtpstreamstats-qualitylimitationdurations

浏览器兼容性