RTCCodecStats

Baseline 廣泛可用 *

此特性已經十分成熟,可在許多裝置和瀏覽器版本上使用。自 2022 年 3 月起,它已在各瀏覽器中可用。

* 此特性的某些部分可能存在不同級別的支援。

RTCCodecStats 字典是 WebRTC API 的一部分,它提供了與關聯的 RTCPeerConnection 物件正在傳送或接收的 RTP 流所使用的編解碼器相關的統計資訊。

這些統計資訊可以透過迭代 RTCPeerConnection.getStats() 返回的 RTCStatsReport 物件來獲取,直到找到一個 typecodec 的條目。

可以透過匹配編解碼器的 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 的報告,並記錄結果。

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

瀏覽器相容性

另見