Does MPV Support Dolby Vision Metadata?

This article explores how the open-source media player mpv handles Dolby Vision metadata during video playback. It covers mpv’s current capabilities regarding different Dolby Vision profiles, the required configurations for tone mapping, and how container formats like MKV and MP4 impact the playback experience.

Dolby Vision Support in mpv

Yes, mpv supports Dolby Vision (DoVi) metadata, but its ability to utilize it depends heavily on the video profile, the output video renderer (vo), and your display hardware. Because mpv is primarily software-based and designed to cross platforms, it handles Dolby Vision differently than a native television app or a hardware Blu-ray player.

Instead of passing the raw Dolby Vision signal directly to a display in a proprietary format (which requires specialized hardware licensing), mpv typically parses the metadata and uses its internal libplacebo-based shaders to tone map the high-dynamic-range (HDR) signal down to standard HDR10 or SDR, depending on your monitor.

Profile Compatibility

Dolby Vision comes in several distinct profiles, and mpv handles them with varying degrees of success:


Container Requirements: MKV vs. MP4

The file container holding the video stream plays a vital role in whether mpv can successfully extract Dolby Vision metadata.

Matroska (MKV)

Modern versions of mpv, when compiled with up-to-date versions of ffmpeg and libavcodec, fully support Dolby Vision inside MKV containers. This is the preferred format for most desktop users.

MPEG-4 (MP4)

mpv can read Dolby Vision from MP4 files, but compatibility can sometimes be finicky depending on how the tracks were muxed. Ensure your files are muxed using standard tools like mp4box or modern ffmpeg builds to ensure mpv recognizes the underlying Dolby Vision configuration records.


How to Enable Dolby Vision in mpv

To ensure mpv is actually utilizing Dolby Vision metadata rather than ignoring it and falling back to basic HDR10, you must use the correct video output driver. The recommended video output is gpu-next.

You can enable this by adding the following line to your mpv.conf configuration file:

vo=gpu-next

The gpu-next architecture handles Dolby Vision dynamic tone mapping natively. When playing a compatible file, mpv will dynamically adjust the brightness and contrast scene-by-scene (or even frame-by-frame) according to the embedded Dolby Vision instructions. You can verify that it is working by pressing I (uppercase i) during playback to display the on-screen statistics, which will indicate if Dolby Vision metadata is being detected and parsed.