RTCCodecStats

RTCCodecStatsWebRTC API 的一个字典,它提供了有关由关联的 RTCPeerConnection 对象发送或接收的 RTP 流使用的编解码器的统计信息。

可以通过迭代 RTCStatsReport 对象(由 RTCPeerConnection.getStats() 返回)来获取这些统计信息,直到找到 typecodec 的条目。

可以通过将编解码器的 codecId 属性与编解码器的 id 进行匹配来将编解码器统计信息与入站或出站流统计信息(本地和远程)相关联。例如,如果 RTCInboundRtpStreamStats.codecId 与同一报告中的 RTCCodecStats.id 匹配,那么我们就知道该编解码器正在此对等连接的入站流上使用。如果没有任何流的 codecId 引用编解码器统计信息,则该编解码器统计信息对象将被删除——如果该编解码器再次使用,则统计信息对象将使用相同的 id 重新创建。

编解码器对象可以通过使用相同传输的媒体部分中的多个 RTP 流进行引用。事实上,预计用户代理将信息合并到每个传输的每个有效负载类型的单个“编解码器”条目中(除非发送或接收时 sdpFmtpLine 不同,在这种情况下,编码和解码将需要不同的编解码器)。请注意,其他传输将使用其自己独特的 RTCCodecStats 对象。

实例属性

channels 可选

一个正数,指示编解码器支持的通道数。

clockRate 可选

包含媒体采样率的正数。

mimeType

包含媒体 MIME 类型/子类型(例如 video/VP8)的字符串。

payloadType

一个介于 0 到 127 之间的正整数,指示在 RTP 编码或解码中使用的有效负载类型。

sdpFmtpLine 可选

一个字符串,包含编解码器 SDP"a=fmtp" 行的格式特定参数(如果存在)。

transportId

一个字符串,包含正在使用此编解码器的传输的唯一标识符。这可以用于匹配相应的 RTCTransportStats 对象。

常见实例属性

以下属性在所有 WebRTC 统计信息对象中都是通用的(有关更多信息,请参阅 RTCStatsReport

id

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

timestamp

一个 DOMHighResTimeStamp 对象,指示为该统计信息对象获取样本的时间。

type

值为 "codec" 的字符串,指示对象包含的统计信息类型。

示例

给定一个变量 myPeerConnection,它是 RTCPeerConnection 的一个实例,下面的代码使用 await 等待统计信息报告,然后使用 RTCStatsReport.forEach() 迭代它。然后,它仅筛选类型为 codec 的字典并记录结果。

js
const stats = await myPeerConnection.getStats();

stats.forEach((report) => {
  if (report.type === "codec") {
    // Log the codec information
    console.log(report);
  }
});

规范

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

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅