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:
- Profile 5 (Streaming Services): Commonly used by platforms like Netflix and Apple TV+. This profile lacks a base HDR10 layer. mpv can decode Profile 5, read the dynamic metadata, and accurately tone map it to SDR or HDR10. Without this metadata parsing, Profile 5 videos look severely distorted with green and purple tints.
- Profile 7 (UHD Blu-ray): Found on physical 4K discs, this profile contains a base HDR10 layer and an Enhancement Layer (EL) with dynamic metadata. mpv will parse the metadata and apply it to the base layer, but it generally ignores the Full Enhancement Layer (FEL) data that reconstructs 12-bit video, treating it instead as Minimum Enhancement Layer (MEL).
- Profile 8 (Cross-compatibility): This profile contains an HDR10 or HLG base layer with Dolby Vision metadata on top. mpv reads the metadata smoothly and falls back seamlessly to the base layer if hardware limitations require it.
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.