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.

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

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

Die Codec-Statistiken können mit den Statistiken des ein- oder ausgehenden Streams (sowohl lokal als auch remote) korreliert werden, indem ihre codecId-Eigenschaft mit der id des Codecs abgeglichen wird. Wenn z. B. RTCInboundRtpStreamStats.codecId mit einer RTCCodecStats.id im selben Bericht übereinstimmt, wissen wir, dass der Codec auf diesem Peer-Connection-Stream verwendet wird. Wenn keine Stream-codecId auf eine Codec-Statistik verweist, wird dieses Codec-Statistikobjekt gelöscht — wenn der Codec erneut verwendet wird, wird das Statistikobjekt mit derselben id neu erstellt.

Codec-Objekte können von mehreren RTP-Streams in Medien-Sektionen referenziert werden, die denselben Transport verwenden. Tatsächlich wird von Benutzeragenten erwartet, dass sie Informationen in einem einzigen "Codec"-Eintrag pro Payload-Typ und Transport konsolidieren (es sei denn, sdpFmtpLine ist beim Senden oder Empfangen unterschiedlich, in diesem Fall werden verschiedene Codecs zum Codieren und Decodieren benötigt). Beachten Sie, dass andere Transporte ihre eigenen, unterschiedlichen RTCCodecStats-Objekte verwenden.

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 Medien-Abtastrate enthält.

mimeType

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

payloadType

Ein positiver Ganzzahlwert im Bereich von 0 bis 127, der den Payload-Typ angibt, der bei der RTP-Codierung oder -Decodierung verwendet wird.

sdpFmtpLine Optional

Ein String, der die formatspezifischen Parameter der "a=fmtp"-Zeile im SDP des Codecs (falls vorhanden) enthält.

transportId

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

Gemeinsame Instanz-Eigenschaften

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

id

Ein String, der das Objekt, das überwacht wird, um diese Statistikreihe zu erzeugen, eindeutig identifiziert.

timestamp

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

type

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

Beispiele

Angenommen, eine Variable myPeerConnection, die eine Instanz von RTCPeerConnection ist, dann verwendet der untenstehende Code await, um auf den Statistikbericht zu warten, und durchläuft diesen dann mit RTCStatsReport.forEach(). Anschließend filtert er die Wörterbücher für nur diejenigen Berichte, die den Typ codec haben, und protokolliert das Ergebnis.

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

BCD tables only load in the browser

Siehe auch