Browser Video Support
The Meta Horizon platform supports high resolution video, useful for immersive video. Browser has an efficient decoding pipeline and is optimized for high quality video playback.
High bitrate and high resolution media can put a load on the device. During high quality playback, only play a single video at the time and keep the complexity of your site to only what is required.
Codec and Container Support
All Meta Quest devices have hardware support for video decoding.
Browser supports the following container formats:
Browser supports the following codecs:
Note that AV1 isn’t hardware decoded on Meta Quest 2 and Meta Quest Pro.
Note that vp8 isn’t hardware decoded on Meta Quest 3 and Meta Quest 3S.
For all formats, Browser supports 4K and supports 8K on h.265 and AV1.
While support is documented on this page, we strongly recommend developers to use the
Media Capabilities API to discover what
is supported by the Browser in order to avoid relying on UA sniffing or other techniques. This API allow checking if a given format is supported and can be hardware decoded. It can also be used to
check if L1 DRM is supported on a specific configuration.
High-Resolution Video Best Practices
WebXR Media Layers are the most efficient way to display immersive video. If possible, design your experience on around API.
WebXR Layers offer a similar efficiency but need to be coded carefully to get to the same level of performance. Cross origin content may not work.
Regular WebXR has higher overhead and may also show some image degradation.
Browser also supports immersive display for video on regular 2D web pages. If a user puts a video in full screen, they can select to reproject it to a custom projection such as spherical 360 or 180 degree equirect. They can also choose between a monoscopic mode or a stereoscopic mode of left-right or top-bottom. For these experiences, these are the maximum sizes that the video is displayed in:
- Meta Quest: 3840x2160
- Meta Quest 2: 7680x3840
For this workflow, pick a video resolution that is lower or equal to these. For instance, on Quest it wouldn’t make sense to play a 5760x2880 video this way because it will be downscaled to 3840x2160.
During playback of 2D video, the operating system will do its best to match the frame rate of the device to the frame rate of the video to ensure a smooth experience that doesn’t show some frames more than others.