Skip to content

Check browser media support

current

The table below asks this browser which codec and container combinations it supports, through three media APIs. A positive answer is a declaration, not a decoded file, so play a real output file before you ship it.

Checks run when you press the button.

Positive declaration · Not advertised · Uncertain prediction or API limitation

Browser declarations for selected codec and container combinations
ConfigurationHTML mediaMSEFile decode / smooth / power efficient
AVC Baseline, 8-bitNot checkedNot checkedNot checked
AV1 Main, 8-bitNot checkedNot checkedNot checked
AV1 Main, 10-bitNot checkedNot checkedNot checked
VP8Not checkedNot checkedNot checked
VP9 profile 0, 8-bitNot checkedNot checkedNot checked
VP9 profile 2, 10-bitNot checkedNot checkedNot checked
HEVC MainNot checkedNot checkedNot checked
AAC LCNot checkedNot checkedNot checked
Opus in WebMNot checkedNot checkedNot checked
Opus in OggNot checkedNot checkedNot checked

Video probes use 640×360, 30 fps and 500 kbit/s; audio uses stereo, 48 kHz and 128 kbit/s. No media is downloaded or played. Results describe this browser session and do not certify a real file, HDR, DRM or hardware decoding.

Each result has a text label beside its icon:

  • ✅ is a positive declaration: HTML probably, MSE support, or a positive decode, smoothness or power-efficiency prediction.
  • ❌ means the queried API does not advertise support for that configuration. A different container, profile, API or application may still play.
  • ⚠️ is HTML maybe, a missing or rejected API, or a supported configuration without a positive smoothness or power-efficiency prediction.

File decoding, smoothness and power efficiency have separate icons, so a supported result can appear with warnings on the other two. The labels follow the HTML media standard, the MSE specification and the Media Capabilities specification.

  • HTML media uses canPlayType(). An empty result means no declared support. maybe and probably are predictions, not a successful decode.
  • MSE uses MediaSource.isTypeSupported(). You still need valid initialization segments, timestamps and appends.
  • File decode uses MediaCapabilities.decodingInfo() for the listed size, frame rate and bitrate. Its smoothness and power-efficiency predictions do not name a specific hardware decoder.

The VP9 queries use level 2.1 codec strings because the probe configuration (640×360, 30 fps, 500 kbit/s) exceeds VP9 level 1.0 in picture size, sample rate and bitrate.

These probes do not cover image formats, DRM, encrypted media, WebCodecs encoding, or every codec in this wiki. A missing API is not the same as an unsupported codec. A positive 8-bit 4:2:0 result does not extend to 10- or 12-bit, 4:2:2, 4:4:4 or HDR playback.

For format-level detail, see video codec support, the image codec overview and the audio codec overview.