RTCCodecStats
RTCCodecStats
是 WebRTC API 的一个字典,它提供了有关由关联的 RTCPeerConnection
对象发送或接收的 RTP 流使用的编解码器的统计信息。
可以通过迭代 RTCStatsReport
对象(由 RTCPeerConnection.getStats()
返回)来获取这些统计信息,直到找到 type
为 codec
的条目。
可以通过将编解码器的 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
的字典并记录结果。
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 的浏览器中加载。
另请参阅
RTCStatsReport
- 传递给
RTCRtpTransceiver.setCodecPreferences()
和RTCRtpSender.setParameters()()
的参数中的codecs
选项。 - 由
RTCRtpSender.getParameters()
和RTCRtpReceiver.getParameters()
返回的对象中的codecs
属性。