RTCRtpSender: Methode getParameters()
Baseline
Weitgehend verfügbar
*
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Januar 2020 browserübergreifend verfügbar.
* Einige Teile dieser Funktion werden möglicherweise unterschiedlich gut unterstützt.
Die Methode getParameters() des Interfaces RTCRtpSender gibt ein Objekt zurück, das die aktuelle Konfiguration dafür beschreibt, wie der track des Senders codiert 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 zum Codieren der Medien des Tracks verwendet werden könnte. Die Eigenschaften der Objekte umfassen:
active-
true(der Standardwert), wenn die Codierung gesendet wird, andernfallsfalse, wenn sie nicht gesendet oder verwendet wird. codecOptional-
Wählt den Medien-Codec aus, der für den RTP-Stream dieser Codierung verwendet wird. Wenn nicht gesetzt, kann der User-Agent jeden für das Senden ausgehandelten Codec auswählen.
channelsOptional-
Eine positive Ganzzahl, die die Anzahl der vom Codec unterstützten Kanäle angibt. Bei Audio-Codecs gibt beispielsweise ein Wert von 1 monauralen Klang an, während 2 Stereo angibt.
clockRate-
Eine positive Ganzzahl, die die Clock-Rate des Codecs in Hertz (Hz) angibt. Die Clock-Rate ist die Rate, mit der der RTP-Zeitstempel des Codecs fortschreitet. Die meisten Codecs haben bestimmte Werte oder Wertebereiche, die sie zulassen. Die IANA führt eine Liste der Codecs und ihrer Parameter, einschließlich ihrer Clock-Rates.
mimeType-
Ein String, der den MIME-Medientyp und -Subtyp des Codecs angibt, als String der Form
"type/subtype". Die von RTP verwendeten MIME-Typ-Strings unterscheiden sich von denen, die andernorts verwendet werden. Die IANA führt ein Register gültiger MIME-Typen. Siehe auch Von WebRTC verwendete Codecs für Details zu möglichen Codecs, auf die hier verwiesen werden könnte. sdpFmtpLineOptional-
Ein String mit den formatspezifischen Parametern, die von der lokalen Beschreibung bereitgestellt werden.
dtx-
Diese Eigenschaft wird nur für einen
RTCRtpSenderverwendet, dessenkindaudioist, und gibt an, ob diskontinuierliche Übertragung verwendet wird oder nicht (eine Funktion, bei der ein Telefon ausgeschaltet oder das Mikrofon bei fehlender Sprachaktivität automatisch stummgeschaltet wird). Der Wert ist entwederenabledoderdisabled. maxBitrate-
Eine positive Ganzzahl, die die maximale Anzahl von Bits pro Sekunde angibt, die der User-Agent Tracks zugestehen darf, die mit dieser Codierung codiert werden. Andere Parameter können die Bitrate weiter einschränken, beispielsweise der Wert von
maxFramerateoder die für den Transport oder das physische Netzwerk verfügbare Bandbreite.Der Wert wird mithilfe der Standardbandbreite Transport Independent Application Specific Maximum (TIAS) berechnet, wie in RFC 3890, Abschnitt 6.2.2 definiert; dies ist die maximal benötigte Bandbreite ohne Berücksichtigung von Protokoll-Overhead durch IP, TCP oder UDP usw.
Beachten Sie, dass die Bitrate je nach Medium und Codierung auf verschiedene Weisen erreicht werden kann. Bei Video kann beispielsweise eine niedrige Bitrate durch das Verwerfen von Frames erreicht werden (eine Bitrate von null könnte das Senden von nur einem Frame erlauben), während bei Audio die Wiedergabe des Tracks möglicherweise beendet werden muss, wenn die Bitrate für dessen Übertragung zu niedrig ist.
maxFramerate-
Ein Wert, der die maximale Anzahl von Frames pro Sekunde angibt, die für diese Codierung zulässig ist.
priority-
Ein String, der die Priorität des
RTCRtpSenderangibt und bestimmen kann, wie der User-Agent die Bandbreite zwischen Sendern zuweist. Zulässige Werte sindvery-low,low(Standard),medium,high. rid-
Ein String, der, falls gesetzt, eine RTP stream ID (RID) angibt, die mittels der RID-Header-Erweiterung gesendet werden soll. Dieser Parameter kann nicht mit
setParameters()geändert werden. Sein Wert kann nur gesetzt werden, wenn der Transceiver erstmals erstellt wird. scaleResolutionDownBy-
Wird nur für Sender verwendet, deren
kinddes Tracksvideoist. Dies ist ein Gleitkommawert, der einen Faktor angibt, um den das Video während der Codierung herunterskaliert wird. Der Standardwert 1.0 bedeutet, dass das Video in seiner ursprünglichen Größe codiert wird. Ein Wert von 2.0 skaliert die Videoframes in jeder Dimension um den Faktor 2 herunter, wodurch ein Video entsteht, 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, löst einenRangeErroraus).
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 festgelegt hat und zu verwenden bereit ist. Dieser Parameter kann nach seiner anfänglichen Festlegung nicht geändert werden.
Jedes Codec-Objekt im Array kann die folgenden Eigenschaften haben:
channelsOptional-
Eine positive Ganzzahl, die die Anzahl der vom Codec unterstützten Kanäle angibt. Bei Audio-Codecs gibt beispielsweise ein Wert von 1 monauralen Klang an, während 2 Stereo angibt.
clockRate-
Eine positive Ganzzahl, die die Clock-Rate des Codecs in Hertz (Hz) angibt. Die Clock-Rate ist die Rate, mit der der RTP-Zeitstempel des Codecs fortschreitet. Die meisten Codecs haben bestimmte Werte oder Wertebereiche, die sie zulassen. Die IANA führt eine Liste der Codecs und ihrer Parameter, einschließlich ihrer Clock-Rates.
mimeType-
Ein String, der den MIME-Medientyp und -Subtyp des Codecs angibt, als String der Form
"type/subtype". Die von RTP verwendeten MIME-Typ-Strings unterscheiden sich von denen, die andernorts verwendet werden. Die IANA führt ein Register gültiger MIME-Typen. Siehe auch Von WebRTC verwendete Codecs für Details zu möglichen Codecs, auf die hier verwiesen werden könnte. payloadType-
Der RTP-Payload-Typ, der zur Identifizierung dieses Codecs verwendet wird.
sdpFmtpLineOptional-
Ein String mit den formatspezifischen Parametern, die von der lokalen Beschreibung bereitgestellt werden.
headerExtensions-
Ein Array aus 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 nach seiner anfänglichen Festlegung nicht geändert werden.
rtcp-
Ein Objekt, das die Konfigurationsparameter für RTCP auf dem Sender bereitstellt. Dieser Parameter kann nicht geändert werden.
Das Objekt kann die folgenden Eigenschaften haben:
cname-
Ein schreibgeschützter String mit dem von RTCP verwendeten kanonischen Namen (CNAME), beispielsweise in SDES-Nachrichten.
reducedSize-
Ein schreibgeschützter boolescher Wert, der
Trueist, wenn RTCP mit reduzierter Größe konfiguriert ist (RFC 5506), undFalse, wenn zusammengesetztes RTCP angegeben ist (RFC 3550).
degradationPreference-
Gibt die bevorzugte Weise an, wie die WebRTC-Schicht die Leistungsoptimierung in Situationen mit begrenzter Bandbreite handhaben soll. Die möglichen Werte sind:
balanced-
Der Standardwert. Der Browser gleicht die Verschlechterung von Framerate und Auflösung aus.
maintain-framerate-
Der Browser verringert die Auflösung, um die Framerate beizubehalten.
maintain-resolution-
Der Browser verringert die Framerate, um die Auflösung beizubehalten.
maintain-framerate-and-resolution-
Der Browser behält Framerate und Auflösung unabhängig von der Videoqualität bei. Dies kann dazu führen, dass Frames bei Bedarf vor der Codierung verworfen werden, um Netzwerk- und Encoder-Ressourcen nicht übermäßig zu beanspruchen. Diese Einstellung ist für Anwendungen nützlich, die einen eigenen Mechanismus zur Optimierung von Video-Codierungsqualität und -Leistung implementieren und nicht möchten, dass der interne Mechanismus des Browsers damit interferiert.
Beispiele
Dieses Beispiel ruft die aktuelle Transaktions-ID des Senders ab; die Transaktions-ID identifiziert den aktuellen Parametersatz eindeutig, um sicherzustellen, dass Aufrufe von setParameters() stets in der richtigen Reihenfolge verarbeitet werden und Parameter nicht versehentlich mit älteren Parametern überschrieben werden.
function getSenderTransactionID(sender) {
let parameters = sender.getParameters();
return parameters.transactionId;
}
Auf dieselbe Weise ruft dieser Code den kanonischen Namen (CNAME) ab, der für RTCP auf einem RTCRtpSender verwendet wird.
function getRtpCNAME(sender) {
let parameters = sender.getParameters();
return parameters.rtcp.cname;
}
Spezifikationen
| Spezifikation |
|---|
| WebRTC: Real-Time Communication in Browsers> # dom-rtcrtpsender-getparameters> |
| MediaStreamTrack Content Hints> # dom-rtcdegradationpreference> |