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

js
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, dessen kind 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 entweder enabled oder disabled.

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 sind very-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 einem RangeError).

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 von getParameters() 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 oder balanced. Der Standardwert ist balanced.

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.

js
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.

js
function getRtpCNAME(sender) {
  let parameters = sender.getParameters();

  return parameters.rtcp.cname;
}

Spezifikationen

Specification
WebRTC: Real-Time Communication in Browsers
# dom-rtcrtpsender-getparameters

Browser-Kompatibilität

Siehe auch