Does mpv Support HDR to SDR Tone Mapping?

This article provides a comprehensive overview of how the mpv media player handles High Dynamic Range (HDR) to Standard Dynamic Range (SDR) tone mapping. It covers the player’s native capabilities, the essential configuration settings required to achieve optimal playback on older displays, and advanced customization options for video enthusiasts.

Native HDR to SDR Tone Mapping in mpv

The mpv media player fully supports HDR to SDR tone mapping out of the box. When you attempt to play an HDR video (such as HDR10) on an older SDR monitor or television, mpv automatically converts the wide color gamut and high contrast range of the source file so that it displays correctly without looking washed out or overly dark. This is primarily handled through its high-performance OpenGL, Vulkan, or Direct3D11 video output drivers.

Essential Configuration for Older Displays

While mpv attempts to automate this process, enabling the high-quality rendering pipeline ensures the best possible tone mapping results. You can activate this by modifying your mpv.conf file to include specific video output settings.

Using the gpu-next video output backend is highly recommended for modern, high-quality tone mapping algorithms:

vo=gpu-next
gpu-api=auto

If your hardware is significantly older and struggles with gpu-next, you can fall back to the standard GPU output:

vo=gpu

Advanced Tone Mapping Customization

For users who want to fine-tune how highlights and shadows are preserved during the conversion process, mpv offers several configurable parameters. These can be added to your configuration file to match the specific brightness capabilities of your older display.