MediaCapabilities: encodingInfo() method
The MediaCapabilities.encodingInfo()
method, part of the MediaCapabilities
interface of the Media Capabilities API, returns a promise with the tested media configuration's capabilities information. This contains the three boolean properties supported
, smooth
, and powerefficient
, which describe how compatible the device is with the type of media.
Syntax
encodingInfo(configuration)
Parameters
configuration
-
An object with a property type
and either a video
or audio
property containing a configuration of the appropriate type:
type
-
The type of media being tested. This takes one of two values:
record
-
Represents a configuration for recording of media, e.g. using MediaRecorder
.
webrtc
-
Represents a configuration meant to be transmitted over electronic means (e.g. using RTCPeerConnection
). Note: Firefox uses transmission
for this type, and webrtc
does not work.
-
transmission
Non-standard
-
The synonym of webrtc
to be used in Firefox.
video
-
Configuration object for a video media source. This has the following properties:
contentType
-
String containing a valid video MIME type, and (optionally) a codecs
parameter.
width
-
The width of the video.
height
-
The height of the video.
bitrate
-
The number of bits used to encode one second of the video file.
framerate
-
The number of frames making up one second of video playback.
audio
-
Configuration object for an audio media source. This has the following properties:
contentType
-
String containing a valid audio MIME type, and (optionally) a codecs
parameter.
channels
-
The number of channels used by the audio track.
bitrate
-
The number of bits used to encode one second of the audio file.
samplerate
-
The number of audio samples making up one second of the audio file.
Return value
A Promise
fulfilling with an object containing three Boolean attributes:
supported
-
true
if the media content can be decoded at all. Otherwise, it is false
.
smooth
-
true
if playback of the media will be smooth (of high quality). Otherwise it is false
.
powerEfficient
-
true
if playback of the media will be power efficient. Otherwise, it is false
.
Browsers will report a supported media configuration as smooth
and powerEfficient
until stats on this device have been recorded. All supported audio codecs are reported to be power efficient.
Exceptions
TypeError
-
Thrown if the configuration
passed to the encodingInfo()
method is invalid, which may be for any of the following reasons:
- the type is not video or audio,
- the
contentType
is not a valid codec MIME type, - there is some other error in the media configuration passed to the method, including omitting any of the
configuration
elements.
Examples
const mediaConfig = {
type: "record",
video: {
contentType: "video/webm;codecs=vp8.0",
width: 1920,
height: 1080,
bitrate: 120000,
framerate: 48,
},
};
navigator.mediaCapabilities.encodingInfo(mediaConfig).then((result) => {
console.log(
`This configuration is ${result.supported ? "" : "not "}supported,`
);
console.log(`${result.smooth ? "" : "not "}smooth, and`);
console.log(`${result.powerEfficient ? "" : "not "}power efficient.`);
});
Specifications
Browser compatibility
|
Desktop |
Mobile |
|
Chrome |
Edge |
Firefox |
Internet Explorer |
Opera |
Safari |
WebView Android |
Chrome Android |
Firefox for Android |
Opera Android |
Safari on IOS |
Samsung Internet |
encodingInfo |
101 |
101 |
63The webrtc value of the type option is named transmission . |
No |
87 |
15.4 |
101 |
101 |
63The webrtc value of the type option is named transmission . |
70 |
15.4 |
19.0 |
See also