Fix video playback problems
Find the cause of an HEVC playback problem and the steps that fix it. Each entry has steps you can take yourself and steps for your IT department. After a playback test, the Test page lists the entries that match your device.
Problems and fixes
The entries are grouped by platform. Open an entry to read the cause, the fixes and the sources.
Check whether the browser uses hardware decoding
These pages and tools show which decoder the browser uses. Type each internal page address into the address bar. Browsers do not open these pages from links.
Chrome and Edge
- Type
chrome://gpuinto the address bar. In Edge, typeedge://gpu. - Under Graphics Feature Status, check that Video Decode shows Hardware accelerated.
- Under Video Acceleration Information, look for Decode hevc main and Decode hevc main 10. When they are missing, the graphics hardware or its driver does not offer HEVC decoding to the browser.
- While a video plays, open
chrome://media-internals(in Edge,edge://media-internals) in a second tab, select the player, and find kVideoDecoderName. D3D11VideoDecoder, VDAVideoDecoder, VaapiVideoDecoder, V4L2VideoDecoder and VideoToolboxVideoDecoder mean hardware decoding. FFmpegVideoDecoder, VpxVideoDecoder and Dav1dVideoDecoder mean software decoding. On a Mac, VideoToolbox can also decode in software. - On Windows, open Task Manager, select Performance and then the GPU, and watch Video Decode (Intel and NVIDIA) or Video Codec (AMD) while the video plays.
Firefox
- Type
about:supportinto the address bar. - Scroll to the Media section and open Codec Support Information.
- Read the HEVC row. It shows whether Firefox supports software decoding and hardware decoding. On Windows, Install extension means the HEVC Video Extensions package is missing.
Safari
Safari has no page that lists its decoders. For Safari, the playback test reports hardware decoding from the power efficient answer of Media Capabilities.
On a Mac, you can also open Activity Monitor while a video plays and look for VTDecoderXPCService, the process that runs VideoToolbox video decoding.
Install HEVC Video Extensions on Windows
Microsoft Edge and Firefox on Windows decode HEVC through a codec package from the Microsoft Store. Chrome, Brave and Opera decode HEVC through the graphics driver and do not need the package.
| Package | Store ID | Price | Requirements |
|---|---|---|---|
| HEVC Video Extensions from Device Manufacturer (opens in a new tab) | 9N4WGH0Z6VHQ |
Free | Windows 10 version 1709 (build 16299) or later on x64 or Arm64 |
| HEVC Video Extensions (opens in a new tab) | 9NMZLZ57R3T7 |
0.99 US dollars | Windows 10 version 1709 (build 16299) or later on x86, x64 or Arm64 |
For you
- Open one of the two Microsoft Store listings above and install the package.
- Close the browser completely, open it again, and run the playback test.
- If the Microsoft Store is blocked on a work computer, ask your IT department to install the package.
For IT
- To check whether the package is installed, run
Get-AppxPackage -AllUsers *HEVC*in an elevated PowerShell window. - To install the free package without the Store app, run
winget install --id 9N4WGH0Z6VHQ --source msstore --accept-package-agreements --accept-source-agreements. - In Intune, add the free package as a Microsoft Store app (new) with the Store ID 9N4WGH0Z6VHQ, set Install behavior to System, and assign it as Required. Intune does not deploy paid Store apps.
- If
edge://gpushows License check for app failed (0xC00DB3B3), the package came from outside the Microsoft Store. Remove it with Remove-AppxPackage and Remove-AppxProvisionedPackage, restart the computer, and install it again from the Store.
What each test checks
The playback test plays each file in a visible player for a few seconds and counts the video frames the browser presents. Each test uses one of these paths.
- File playback
- The browser plays an MP4, QuickTime or WebM file in a video element.
- Media Source Extensions
- The page downloads a fragmented MP4 file and passes it to the video element in pieces, the way streaming players do.
- HLS stream
- The browser plays HLS streams with HEVC variants. One stream lists the codecs of each variant, one leaves them out, and one stores each variant in a single file that the playlist reads in byte ranges. Browsers with built-in HLS play the streams directly, and other browsers play them through the hls.js library.
- WebCodecs decoder
- The page decodes raw HEVC frames with the WebCodecs VideoDecoder API, without a video element.
- Two players at once
- The page plays the same HEVC file in two visible video elements at the same time and counts the frames each one presents.
- Audio playback
- The page plays three seconds of audio without sound and measures the signal level of the test beeps.
- Network check
- The page asks the server for the first two bytes of a video file. A correct server answers with 206 Partial Content. A 200 answer means a proxy or filter on the network removed the range request. The page also asks the server which headers arrived with the request. A Via, Forwarded or X-Forwarded-For header, or a header that a known proxy product adds, means the request passed through a proxy.