The MediaCapabilities.encodingInfo() method, part of the MediaCapabilities interface of the Media Capabilities API, returns a promise with the tested media configuration's MediaCapabilitiesInfo; this contains the three Boolean properties supported, smooth, and powerefficient, which describe how compatible the device is with the type of media.
Syntax
mediaCapabilities.encodingInfo(mediaEncodingConfiguration)
Parameters
mediaEncodingConfiguration- A valid
MediaEncodingConfigurationdictionary containing a valid media encoding type ofrecordortransmissionand a valid media configuration: either anAudioConfigurationorVideoConfigurationdictionary.
Return value
A Promise fulfilling with a MediaCapabilitiesInfo interface containing three Boolean attributes:
supportedsmoothpowerEfficient
Exceptions
A TypeError is raised if the MediaConfiguration passed to the encodingInfo() method is invalid, either because the type is not video or audio, the contentType is not a valid codec MIME type, or any other error in the media configuration passed to the method, including omitting any of the media encoding configuration elements.
Example
//Create media configuration to be tested
const mediaConfig = {
type : 'record', // or 'transmission'
video : {
contentType : "video/webm;codecs=vp8.0", // valid content type
width : 1920, // width of the video
height : 1080, // height of the video
bitrate : 120000, // number of bits used to encode 1s of video
framerate : 48 // number of frames making up that 1s.
}
};
// check support and performance
navigator.mediaCapabilities.encodingInfo(mediaConfig).then(result => {
console.log('This configuration is ' +
(result.supported ? '' : 'not ') + 'supported, ' +
(result.smooth ? '' : 'not ') + 'smooth, and ' +
(result.powerEfficient ? '' : 'not ') + 'power efficient.')
});
Specifications
| Specification | Status | Comment |
|---|---|---|
| Media Capabilities The definition of 'encodingInfo()' in that specification. |
Draft | Initial definition |
Browser compatibility
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
encodingInfo | Chrome
Full support
67
| Edge
Full support
≤79
| Firefox Full support 63 | IE ? | Opera ? | Safari ? | WebView Android No support No | Chrome Android
Full support
67
| Firefox Android Full support 63 | Opera Android ? | Safari iOS ? | Samsung Internet Android No support No |
Legend
- Full support
- Full support
- No support
- No support
- Compatibility unknown
- Compatibility unknown
- Experimental. Expect behavior to change in the future.
- Experimental. Expect behavior to change in the future.
- User must explicitly enable this feature.
- User must explicitly enable this feature.
