Does mpv Support 360-Degree or VR Videos?

The popular open-source media player mpv does not natively support 360-degree or virtual reality (VR) video playback with interactive panning out of the box. While mpv is highly praised for its minimalist design, efficiency, and extensive scripting capabilities, it lacks built-in equirectangular projection rendering. However, users can still play these files as flat, distorted videos, or utilize community-developed scripts and external configurations to achieve a pseudo-360 viewing experience.

The Limits of Native Playback

When you open a 360-degree or VR video file in standard mpv, the player renders the video using its default video output drivers. Because it does not recognize the spatial metadata required for VR, it displays the entire sphere of the video stretched out onto a flat 2D screen.

Community Workarounds and Scripts

Because mpv is highly customizable through Lua and JavaScript API scripts, users have created workarounds to enable 360-degree panning.

1. External Lua Scripts

The most common method to achieve 360-degree playback in mpv is by installing third-party scripts. Some developers have written scripts utilizing mpv’s internal video filters or integration with standard graphics shaders (like OpenGL/Vulkan) to warp the video into a rectilinear projection. This allows users to pan around the video using keyboard shortcuts or mouse dragging.

2. Using mpv as a Backend

Many users who require robust VR support pair mpv’s powerful decoding backend with frontend applications specifically designed for virtual reality. Some open-source VR video players use libmpv (the development library version of the player) to handle the heavy lifting of video decoding while the frontend manages the 3D spherical rendering and headset tracking.

Alternatives for 360-Degree Video Playback

If you require a seamless, plug-and-play experience for 360-degree and VR content without dealing with manual script configurations, several alternative media players offer native support: