VLC 中的 HDR 播放:直通、色调映射与验证
播放 HDR 文件很容易;正确播放却不然。开箱即用时,VLC 要么把 HDR 色调映射成 SDR(颜色显得平淡),要么在 Windows 上把原始信号发给可能并未处于 HDR 模式的屏幕(颜色发灰发白)。本指南解释这两种模式、如何选择,以及如何验证屏幕实际收到的是什么。
第 1 步 —— 理解两条 HDR 路径
- Passthrough——VLC 把未处理的 HDR 信号发给显示器,由它显示真正的 HDR。要求:HDR 显示器、操作系统已启用 HDR、通过 HDMI 2.0+/DP 1.4+ 连接的 GPU/显示器,以及正确的 VLC 输出模块。
- Tone mapping——VLC 在软件中把 HDR 转成 SDR。画面在任何屏幕上看起来都"正常",但会损失动态范围带来的冲击力。
- 经验法则:在 HDR 电视/显示器上用直通;在 SDR 屏幕上用色调映射。最糟的结果——发灰发白——发生在直通开启但显示器实际并未处于 HDR 模式时。
第 2 步 —— Windows:启用 HDR 直通
打开 Windows 的 HDR:Settings > System > Display > "Use HDR"(Windows 11)或 Windows HD Color > "Play HDR games and apps"(Windows 10)。
Windows 报告已连接 HDR 显示器。
打开 VLC Tools > Preferences > "All" > Video > Output,把 Output 设为 "Direct3D11 video output"。
已选择 D3D11 输出。
在 Video > Output modules > Direct3D11 中,勾选 "HDR metadata / HDR10 output"(HDR 色调映射选项保持默认)。
HDR 直通已启用。
保存、重启 VLC,播放一个 HDR 文件(例如带 DV/HEVC main10 profile 的 HDR10 MKV)。
屏幕显示真正的 HDR。
第 3 步 —— macOS 与 Linux:色调映射路径
macOS:输出保持 CoreAnimation/OpenGL——VLC 3.0 会可靠地把 HDR10 自动色调映射到显示器的 SDR 范围。macOS 上真正的 HDR 直通受限于操作系统的媒体管线,而不是 VLC。
HDR 在任何 Mac 屏幕上看起来都正常(色调映射后)。
Linux:把 Video > Output 设为 "OpenGL"(NVIDIA/AMD 可用 VDPAU/VA-API),并在你的构建暴露该选项时于 Video > Output modules > OpenGL 下启用 "Tone mapping"。
颜色被色调映射而不是被裁切。
避免在 SDR 硬件上强制 HDR 直通——结果比色调映射更糟。
你为硬件选对了模式。
第 4 步 —— 验证 HDR 确实生效
Windows 上按 Win+Alt+B,或检查 Settings > System > Display——"HDR" 必须为 On,并显示 "HDR certified"。
操作系统确认 HDR。
播放期间打开 VLC Tools > Media Information,查看视频编解码器一栏——应显示 "HEVC Main10" 和 HDR10 元数据标签(PQ、BT.2020)。
文件是真正的 HDR。
目视确认:真正的 HDR 高光应明显更亮,暗部深沉;画面发灰说明链路某处断了。
HDR 全链路验证通过。
如果你的电视有信息按钮(如 LG/Samsung 的 "Info" 或绿色按钮),播放时按下——它会显示输入信号格式(HDR10、4:2:0、10-bit)。
电视确认信号。