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屬性。