VideoEncoder.isConfigSupported()

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

The isConfigSupported() static method of the VideoEncoder interface checks if the given config is supported (that is, if VideoEncoder objects can be successfully configured with the given config).

Syntax

isConfigSupported(config)

Parameters

config

The dictionary object accepted by VideoEncoder.configure

Return value

A Promise that resolves with an object containing the following members:

supported Optional

A boolean value which is true if the given config is supported by the encoder.

config Optional

A copy of the given config with all the fields recognized by the encoder.

Exceptions

  • TypeError
    • : Thrown if the provided config is invalid; that is, if doesn't have required
    values (such as an empty codec field) or has invalid values (such as a negative width)

Examples

The following example tests if the browser supports accelerated and un-accelerated versions of several video codecs.

let codecs = ['avc1.42001E', 'vp8', 'vp09.00.10.08', 'av01.0.04M.08'];
let accelerations = ['prefer-hardware', 'prefer-software']

let configs = [];
for (let codec of codecs) {
  for (let acceleration of accelerations) {
    configs.push({
      codec: codec,
      hardwareAcceleration: acceleration,
      width: 1280,
      height: 720,
      bitrate: 2_000_000,
      bitrateMode: 'constant',
      framerate: 30,
      not_supported_field: 123
    });
  }
}

for (let config of configs) {
  let support = await VideoEncoder.isConfigSupported(config);
  console.log(`VideoEncoder's config ${JSON.stringify(support.config)} support: ${support.supported}`);
}

Specifications

Specification
WebCodecs
# dom-videoencoder-isconfigsupported

Browser compatibility

BCD tables only load in the browser