RTCCodecStats
Baseline 广泛可用 *
RTCCodecStats 字典是 WebRTC API 的一部分,它提供了与关联的 RTCPeerConnection 对象正在发送或接收的 RTP 流所使用的编解码器相关的统计信息。
这些统计信息可以通过迭代 RTCPeerConnection.getStats() 返回的 RTCStatsReport 对象来获取,直到找到一个 type 为 codec 的条目。
可以通过匹配编解码器的 id 属性与入站或出站流统计信息(本地和远程)的 codecId 属性来关联编解码器统计信息。例如,如果 RTCInboundRtpStreamStats.codecId 与同一报告中的 RTCCodecStats.id 匹配,那么我们就知道该编解码器正在此对等连接的入站流上使用。如果没有任何流的 codecId 引用了编解码器统计信息,那么该编解码器统计信息对象将被删除;如果编解码器再次使用,则会使用相同的 id 重新创建统计信息对象。
在同一传输的媒体部分中,多个 RTP 流可能会引用同一个编解码器对象。实际上,用户代理应该为每个传输的每个有效载荷类型合并信息到一个“codec”条目中(除非发送或接收时 sdpFmtpLine 不同,在这种情况下,编码和解码需要不同的编解码器)。请注意,其他传输将使用它们自己独立的 RTCCodecStats 对象。
实例属性
channels可选-
一个正数,表示编解码器支持的通道数。
clockRate可选-
一个正数,包含媒体采样率。
mimeType-
一个字符串,包含媒体 MIME 类型/子类型,例如 video/VP8。
payloadType-
一个介于 0 和 127 之间的正整数值,表示在 RTP 编码或解码中使用的有效载荷类型。
sdpFmtpLine可选-
一个字符串,包含编解码器的 SDP 中
"a=fmtp"行的格式特定参数(如果存在)。 transportId-
一个字符串,包含正在使用此编解码器的传输的唯一标识符。这可以用来匹配相应的
RTCTransportStats对象。
常见实例属性
以下属性是所有 WebRTC 统计信息对象共有的(有关更多信息,请参见 RTCStatsReport)
id-
一个字符串,唯一标识正在监控以生成这组统计信息的对象。
时间戳-
一个
DOMHighResTimeStamp对象,表示此统计信息对象样本的采集时间。 type-
一个字符串,值为
"codec",表示该对象包含的统计信息类型。
示例
给定一个变量 myPeerConnection,它是 RTCPeerConnection 的一个实例,下面的代码使用 await 等待统计信息报告,然后使用 RTCStatsReport.forEach() 迭代它。然后,它过滤字典,仅保留类型为 codec 的报告,并记录结果。
const stats = await myPeerConnection.getStats();
stats.forEach((report) => {
if (report.type === "codec") {
// Log the codec information
console.log(report);
}
});
规范
| 规范 |
|---|
| WebRTC 统计 API 的标识符 # dom-rtcstatstype-codec |
浏览器兼容性
加载中…
另见
RTCStatsReport- 传递给
RTCRtpTransceiver.setCodecPreferences()和RTCRtpSender.setParameters()()参数的codecs选项。 RTCRtpSender.getParameters()和RTCRtpReceiver.getParameters()返回的对象中的codecs属性。