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