RTCCodecStats

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.

* Some parts of this feature may have varying levels of support.

Das RTCCodecStats-Wörterbuch der WebRTC API liefert Statistiken über einen Codec, der von RTP-Streams verwendet wird, die von dem verbundenen RTCPeerConnection-Objekt gesendet oder empfangen werden.

Diese Statistiken können erzielt werden, indem das RTCStatsReport-Objekt iteriert wird, das von RTCPeerConnection.getStats() zurückgegeben wird, bis Sie einen Eintrag mit dem type codec finden.

Die Codec-Statistiken können mit den eingehenden oder ausgehenden Stream-Statistiken (sowohl lokal als auch remote) korreliert werden, indem die Eigenschaft codecId mit der id des Codecs abgeglichen wird. Ein Beispiel: Wenn RTCInboundRtpStreamStats.codecId mit einer RTCCodecStats.id im gleichen Bericht übereinstimmt, wissen wir, dass der Codec auf diesem Peer-Connection-Eingangsstream verwendet wird. Wenn keine Stream-codecId eine Codec-Statistik referenziert, wird dieses Codec-Statistik-Objekt gelöscht — falls der Codec erneut verwendet wird, wird das Statistik-Objekt mit derselben id neu erstellt.

Codec-Objekte können von mehreren RTP-Streams in Medienabschnitten referenziert werden, die denselben Transport verwenden. Tatsächlich wird erwartet, dass Benutzeragenten Informationen in einem einzigen "codec"-Eintrag pro Nutzlasttyp pro Transport konsolidieren (es sei denn, sdpFmtpLine unterscheidet sich beim Senden oder Empfangen, in diesem Fall sind unterschiedliche Codecs für Kodierung und Dekodierung erforderlich). Beachten Sie, dass andere Transporte ihre eigenen unterschiedlichen RTCCodecStats-Objekte verwenden werden.

Instanz-Eigenschaften

channels Optional

Eine positive Zahl, die die Anzahl der vom Codec unterstützten Kanäle angibt.

clockRate Optional

Eine positive Zahl, die die Medienabtastrate enthält.

mimeType

Ein String, der den Medien-MIME-Typ/Subtyp enthält, wie zum Beispiel video/VP8.

payloadType

Ein positiver Ganzzahlenwert im Bereich von 0 bis 127, der den im RTP verwendeten Nutzlasttyp bei der Kodierung oder Dekodierung angibt.

sdpFmtpLine Optional

Ein String, der die format-spezifischen Parameter der "a=fmtp"-Zeile im Codec-SDP enthält (falls vorhanden).

transportId

Ein String, der die eindeutige Kennung des Transports enthält, auf dem dieser Codec verwendet wird. Dies kann verwendet werden, um das entsprechende RTCTransportStats-Objekt abzugleichen.

Allgemeine Instanz-Eigenschaften

Die folgenden Eigenschaften sind allen WebRTC-Statistik-Objekten gemeinsam (siehe RTCStatsReport für weitere Informationen):

id

Ein String, der das Objekt, das überwacht wird, eindeutig identifiziert, um diese Statistik zu erstellen.

timestamp

Ein DOMHighResTimeStamp-Objekt, das den Zeitpunkt angibt, zu dem die Probe für dieses Statistik-Objekt entnommen wurde.

type

Ein String mit dem Wert "codec", der den Typ der Statistiken angibt, den das Objekt enthält.

Beispiele

Gegeben sei eine Variable myPeerConnection, die eine Instanz von RTCPeerConnection ist. Der folgende Code verwendet await, um auf den Statistikbericht zu warten und iteriert dann mit RTCStatsReport.forEach() darüber. Anschließend werden die Wörterbücher gefiltert, sodass nur die Berichte vom Typ codec protokolliert werden.

js
const stats = await myPeerConnection.getStats();

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

Spezifikationen

Specification
Identifiers for WebRTC's Statistics API
# dom-rtcstatstype-codec

Browser-Kompatibilität

Siehe auch