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.
- target-peak: Specifies the maximum brightness of
your display in nits (e.g.,
target-peak=100ortarget-peak=250). Adjusting this prevents the image from appearing too dim on older screens. - tone-mapping: Chooses the specific mathematical
algorithm used to scale the brightness. Popular options include
bt.2446a,mobius,reinhard, andspline. - gamut-mapping: Controls how colors outside the SDR spectrum are handled to prevent color clipping.