RTCRtpTransceiver.setCodecPreferences()
The RTCRtpTransceiver
method
setCodecPreferences()
configures the transceiver's
codecs given a list of RTCRtpCodecCapability
objects specifying the new
preferences for each codec.
The specified set of codecs and configurations will be used for all future connections including this transceiver until this method is called again.
When preparing to open an RTCPeerConnection
, you can change the codec
parameters from the user agent's default configuration by
calling setCodecParameters()
before calling either
RTCPeerConnection.createOffer()
or
createAnswer()
.
A guide to codecs supported by WebRTCâand each codec's positive and negative characteristicsâcan be found in Codecs used by WebRTC.
Syntax
rtcRtpTransceiver.setCodecPreferences(codecs)
Parameters
codecs
-
An array of
RTCRtpCodecCapability
objects, in order of preference, each providing the parameters for one of the transceiver's supported codecs. Ifcodecs
is empty, the codec configurations are all returned to the user agent's defaults.Note: Any codecs not included in
codecs
will not be considered during the process of negotiating a connection. This lets you prevent the use of codecs you don't wish to use.
Return value
undefined
Exceptions
InvalidAccessError
-
The
codecs
list includes one or more codecs which are not supported by the transceiver.
Usage notes
Getting a list of supported codecs
You can only include in the codecs
list codecs which the transceiver
actually supports. That means that either the associated RTCRtpSender
or
the RTCRtpReceiver
needs to support every codec in the list. If any
unsupported codecs are listed, the browser will throw an InvalidAccessError
exception when you call this method.
A good approach to setting codec preferences is to first get the list of codecs that
are actually supported, then modify that list to match what you want. Pass the altered
list into setCodecPreferences()
to specify your preferences.
To determine which codecs are supported by the transceiver, call the sender's
getCapabilities()
and the receiver's
getCapabilities()
methods and get the
codecs
list from the results of each.
The following code snippet demonstrates how to get both the list of codecs supported by
the transceiver's RTCRtpSender
and RTCRtpReceiver
.
var availSendCodecs = transceiver.sender.getCapabilities("video").codecs;
var availReceiveCodecs = transceiver.receiver.getCapabilities("video").codecs;
Specifications
Specification |
---|
WebRTC 1.0: Real-Time Communication Between Browsers # dom-rtcrtptransceiver-setcodecpreferences |
Browser compatibility
BCD tables only load in the browser