RTCRtpSender: getParameters()-Methode
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.
Die getParameters()
-Methode des RTCRtpSender
-Interfaces gibt ein Objekt zurück, das die aktuelle Konfiguration beschreibt, wie die track
des Senders kodiert und an einen entfernten RTCRtpReceiver
übertragen wird.
Syntax
getParameters()
Parameter
Keine.
Rückgabewert
Ein Objekt, das die aktuelle Konfiguration des Senders angibt.
encodings
-
Ein Array von Objekten, die jeweils die Parameter und Einstellungen für einen einzelnen Codec angeben, der zur Kodierung der Medien der Spur verwendet werden könnte. Die Eigenschaften der Objekte umfassen:
active
-
true
(der Standardwert), wenn die Kodierung gesendet wird,false
, wenn sie nicht gesendet oder verwendet wird. dtx
Veraltet Nicht standardisiert-
Wird nur für einen
RTCRtpSender
verwendet, dessenkind
audio
ist. Diese Eigenschaft gibt an, ob eine diskontinuierliche Übertragung verwendet wird (eine Funktion, bei der das Telefon automatisch ausgeschaltet oder das Mikrofon stummgeschaltet wird, wenn keine Sprachaktivität vorliegt). Der Wert ist entwederenabled
oderdisabled
. maxBitrate
-
Eine positive ganze Zahl, die die maximale Anzahl von Bits pro Sekunde angibt, die dem Benutzeragenten für mit dieser Kodierung kodierte Spuren gewährt werden darf. Andere Parameter können die Bitrate weiter einschränken, wie der Wert von
maxFramerate
oder die für den Transport oder das physische Netzwerk verfügbare Bandbreite.Der Wert wird unter Verwendung der Standard-Transport-Independent Application Specific Maximum (TIAS)-Bandbreite berechnet, wie in RFC 3890, Abschnitt 6.2.2 definiert; dies ist die maximale benötigte Bandbreite ohne Berücksichtigung von Protokollüberköpfen von IP, TCP oder UDP und so weiter.
Beachten Sie, dass die Bitrate je nach Medium und Kodierung auf verschiedene Weise erreicht werden kann. Zum Beispiel kann für Video eine niedrige Bitrate erreicht werden, indem Frames weggelassen werden (eine Bitrate von Null könnte das Senden eines einzelnen Frames ermöglichen), während für Audio die Spur möglicherweise aufhören muss zu spielen, wenn die Bitrate zu niedrig ist, um sie zu senden.
maxFramerate
-
Ein Wert, der die maximale Anzahl von Bildern pro Sekunde angibt, die für diese Kodierung erlaubt sind.
priority
-
Ein String, der die Priorität des
RTCRtpSender
angibt, die bestimmen kann, wie der Benutzeragent die Bandbreite zwischen Sendern aufteilt. Zulässige Werte sindvery-low
,low
(Standard),medium
,high
. rid
-
Ein String, der, wenn gesetzt, eine RTP stream ID (RID) angibt, die mit der RID-Header-Erweiterung gesendet wird. Dieser Parameter kann nicht mit
setParameters()
geändert werden. Sein Wert kann nur bei der erstmaligen Erstellung des Transceivers festgelegt werden. scaleResolutionDownBy
-
Wird nur für Sender verwendet, deren
track's
kind
video
ist. Dies ist ein Gleitkommawert, der einen Faktor angibt, mit dem das Video bei der Kodierung verkleinert wird. Der Standardwert, 1.0, bedeutet, dass das Video in seiner ursprünglichen Größe kodiert wird. Ein Wert von 2.0 skaliert die Video-Frames in jeder Dimension um den Faktor 2, was zu einem Video führt, das 1/4 der Größe des Originals hat. Der Wert darf nicht kleiner als 1.0 sein (der Versuch, das Video auf eine größere Größe zu skalieren, führt zu einemRangeError
).
transactionId
-
Ein String, der eine eindeutige ID enthält. Dieser Wert wird verwendet, um sicherzustellen, dass
setParameters()
nur aufgerufen werden kann, um die Parameter zu ändern, die von einem bestimmten vorherigen Aufruf vongetParameters()
zurückgegeben wurden. Dieser Parameter kann vom Aufrufer nicht geändert werden. codecs
-
Ein Array von Objekten, die die Medien-Codecs beschreiben, die der Sender als aktiviert eingestellt hat und zu verwenden bereit ist. Dieser Parameter kann nicht geändert werden, nachdem er initial gesetzt wurde.
Jedes Codec-Objekt im Array kann die folgenden Eigenschaften haben:
channels
Optional-
Eine positive ganze Zahl, die die Anzahl der vom Codec unterstützten Kanäle angibt. Zum Beispiel gibt für Audiocodecs ein Wert von 1 Mono wieder, während 2 Stereo bedeutet.
clockRate
-
Eine positive ganze Zahl, die die Abtastrate des Codecs in Hertz (Hz) angibt. Die Abtastrate ist die Rate, mit der der RTP-Zeitstempel des Codecs fortschreitet. Die meisten Codecs haben spezifische Werte oder Wertebereiche, die sie zulassen. Die IANA führt eine Liste der Codecs und ihrer Parameter, einschließlich ihrer Abtastraten.
mimeType
-
Ein String, der den MIME-Medientyp und -Untertyp des Codecs angibt, der als String der Form
"type/subtype"
angegeben wird. Die von RTP verwendeten MIME-Typ-Strings unterscheiden sich von denen, die an anderer Stelle verwendet werden. IANA führt ein Verzeichnis gültiger MIME-Typen. Siehe auch Codecs used by WebRTC für Details zu möglichen Codecs, die hier referenziert werden können. payloadType
-
Der RTP-Payload-Typ, der zur Identifizierung dieses Codecs verwendet wird.
sdpFmtpLine
Optional-
Ein String, der die format-spezifischen Parameter enthält, die von der lokalen Beschreibung bereitgestellt werden.
headerExtensions
-
Ein Array von null oder mehr RTP-Header-Erweiterungen, die jeweils eine vom Sender oder Empfänger unterstützte Erweiterung identifizieren. Header-Erweiterungen werden in RFC 3550, Abschnitt 5.3.1 beschrieben. Dieser Parameter kann nicht geändert werden, nachdem er initial gesetzt wurde.
rtcp
-
Ein
RTCRtcpParameters
-Objekt, das die Konfigurationsparameter bereitstellt, die für RTCP auf dem Sender oder Empfänger verwendet werden. Dieser Parameter kann nicht geändert werden, nachdem er initial gesetzt wurde. degradationPreference
Veraltet Optional-
Gibt an, wie die WebRTC-Schicht bevorzugt Bandbreite gegenüber Qualität in Situationen mit eingeschränkter Bandbreite optimieren sollte. Die möglichen Werte sind
maintain-framerate
,maintain-resolution
oderbalanced
. Der Standardwert istbalanced
.
Beispiele
Dieses Beispiel erhält die aktuelle Transaktions-ID des Senders; die Transaktions-ID identifiziert eindeutig den aktuellen Satz von Parametern, um sicherzustellen, dass Aufrufe von setParameters()
immer in der richtigen Reihenfolge bearbeitet werden, um zu vermeiden, dass Parameter versehentlich mit älteren Parametern überschrieben werden.
function getSenderTransactionID(sender) {
let parameters = sender.getParameters();
return parameters.transactionId;
}
Auf die gleiche Weise erhält dieser Code den kanonischen Namen (CNAME), der für RTCP auf einem RTCRtpSender
verwendet wird.
function getRtpCNAME(sender) {
let parameters = sender.getParameters();
return parameters.rtcp.cname;
}
Spezifikationen
Specification |
---|
WebRTC: Real-Time Communication in Browsers # dom-rtcrtpsender-getparameters |