RTCVideoSourceStats

基线 2023 *
新推出

自 ⁨2023 年 5 月⁩起,此功能可在最新的设备和浏览器版本上使用。此功能可能无法在旧版设备或浏览器上使用。

* 此特性的某些部分可能存在不同级别的支持。

RTCVideoSourceStats 字典是 WebRTC API 的一部分,它提供了有关附加到一个或多个发送者 (RTCRtpSender) 的视频轨道 (MediaStreamTrack) 的统计信息。

这些统计信息可以通过迭代 RTCRtpSender.getStats()RTCPeerConnection.getStats() 返回的 RTCStatsReport 来获得,直到找到一个 typemedia-sourcekindvideo 的报告。

注意: 对于远程源(正在接收)的视频信息,请参阅 RTCInboundRtpStreamStats

实例属性

frames 可选

一个正数,表示此视频源产生的总帧数。

framesPerSecond 可选

一个正数,表示此视频源在过去一秒钟内产生的帧数。此属性在统计对象存在的第一秒内未定义。

height 可选

一个数字,表示此源产生的最后一帧的高度(以像素为单位)。此属性在生成第一帧之前未在此统计对象上定义。

width 可选

一个数字,表示此源产生的最新一帧的宽度(以像素为单位)。此属性在生成第一帧之前未在此统计对象上定义。

通用的 media-source 属性

以下属性存在于 RTCVideoSourceStatsRTCAudioSourceStats

trackIdentifier

一个字符串,包含与视频源关联的 MediaStreamTrackid 值。

kind

一个字符串,指示此对象是否代表视频源或媒体源的统计信息。对于 RTCVideoSourceStats,它始终是 video

常见实例属性

以下属性是所有统计对象共有的。

id

一个字符串,唯一标识正在监控以生成这组统计信息的对象。

时间戳

一个 DOMHighResTimeStamp 对象,表示此统计信息对象样本的采集时间。

type

一个值为 "media-source" 的字符串,表示该对象是 RTCAudioSourceStatsRTCVideoSourceStats 的实例。

描述

该接口提供了附加到一个或多个发送者的视频媒体源的统计信息。信息包括相关的 MediaStreamTrack 的标识符,以及源发送的最后一帧的高度和宽度、源发送的帧数以及帧率。

示例

此示例展示了如何迭代 RTCRtpSender.getStats() 返回的统计对象,以获取特定于视频的媒体源统计信息。

js
// where sender is an RTCRtpSender
const stats = await sender.getStats();
let videoSourceStats = null;

stats.forEach((report) => {
  if (report.type === "media-source" && report.kind==="video") {
    videoSourceStats = report;
    break;
  }
});

// videoSourceStats will be null if the report did not include video source stats
const frames = videoSourceStats?.frames;
const fps = videoSourceStats?.framesPerSecond;
const width = videoSourceStats?.width;
const height = videoSourceStats?.height;

规范

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

浏览器兼容性