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.
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
RTCStatsReport
codecs
-Option im Parameter, der anRTCRtpTransceiver.setCodecPreferences()
undRTCRtpSender.setParameters()()
übergeben wird.codecs
-Eigenschaft im Objekt, das vonRTCRtpSender.getParameters()
undRTCRtpReceiver.getParameters()
zurückgegeben wird.