mpv-player / mpv

🎥 Command line video player
https://mpv.io
Other
27.84k stars 2.87k forks source link

SDR in HDR mode looks washed out. Fix inside! #14648

Open mnisius opened 1 month ago

mnisius commented 1 month ago

mpv Information

mpv v0.38.0-678-g0818f600 Copyright © 2000-2024 mpv/MPlayer/mplayer2 projects
 built on Aug  7 2024 00:12:51
libplacebo version: v7.349.0 (v7.349.0-5-g82bf46a-dirty)
FFmpeg version: N-116546-g792a9979e
FFmpeg library versions:
   libavcodec      61.11.100
   libavdevice     61.2.100
   libavfilter     10.2.102
   libavformat     61.5.101
   libavutil       59.32.100
   libswresample   5.2.100
   libswscale      8.2.100

Other Information

Reproduction Steps

Enable HDR mode in Windows, set target-colorspace-hint=yes in your mpv.conf wich is neccesary for playing any HDR content. Then play any SDR File

Expected Behavior

Picture looks good with good contrast

Actual Behavior

Picture looks washed out, contrast is bad. There is an easy fix for this problem you just have to set target-trc=srgb and then the SDR file looks perfect. You can even adjust die brightness with the HDR/SDR Brightness Slider in the Windows HDR setting. Without this config the slider does nothing.

However with this setting HDR Movies look wrong so there is currently no way to configure mpv to just play SDR and HDR files correctly without manually actions.

Log File

output.txt

Sample Files

No response

I carefully read all instruction and confirm that I did the following:

geextahslex commented 3 weeks ago

do you know how profiles work? put this at the end your mpv.conf This will apply the settings according to the source material

[HDR]
profile-cond=get("video-params/primaries") == "bt.2020" and get("video-params/gamma") == "pq"
profile-restore=copy
target-colorspace-hint=yes
[SDR]
profile-cond=get("video-params/primaries") == "bt.709"
profile-restore=copy
target-trc=srgb
mnisius commented 3 weeks ago

I know but I think mpv should apply the correct settings automatically. It's a bad user experience if every user haa to create profiles just that movies look like they should.

geextahslex commented 3 weeks ago

Sure the default settings could be changed in the future

Obegg commented 3 weeks ago
[SDR]
profile-cond=get("video-params/primaries") == "bt.709"
profile-restore=copy
target-trc=srgb

Why do you need this profile? Does this mean that SDR video files are not playing correctly by default? Can you add a picture with this profile and without it playing a SDR video file?

mnisius commented 3 weeks ago

Well it's complicated. Without config HDR files will not play correctly in HDR mode. You have to set target-colorspace-hint=yes then they look like they should. But with this option sdr videos will not play correctly any more. 🤷‍♂️

Obegg commented 3 weeks ago

Well it's complicated. Without config HDR files will not play correctly in HDR mode. You have to set target-colorspace-hint=yes then they look like they should. But with this option sdr videos will not play correctly any more. 🤷‍♂️

I just tested both commands on a SDR video file. Using target-trc=srgb without target-colorspace-hint=yes = colors are correct. Using target-colorspace-hint=yes without target-trc=srgb = colors are correct. In each test I took a screenshot using mpv screenshot command and I found no difference. Can you share screenshots please?

Obegg commented 3 weeks ago

By the way, target-colorspace-hint=yes only works with vo=gpu-next, do you use gpu-next? Also, you need to disable HDR in Windows if you are playing SDR video files.

mnisius commented 3 weeks ago

Sure but It will take some time. I'm not at home right now.

Do you have a HDR display and activated HDR mode in windows ? The colors are fine it's just the contrast and black level.

I use a profile that I activate with a keyboard shortcut and the change in contrast and black level is very obvious.

@Obegg Yes I use gpu-next and no I don't have to disable HDR mode that's my whole point. HDR means just more brightness and more colors. It is absolutely possible to play an sdr file in hdr mode it just needs the correct settings that I already posted here.

Obegg commented 3 weeks ago

I don't have to disable HDR mode that's my whole point. HDR means just more brightness and more colors

Uh, so I see why you say you have issues with the colors. I don't use HDR the same way you do, I only use HDR when playing HDR video files. But using HDR all the time could wear out the screen faster because of the additional brightness. So you might be right, setting target-trc=srgb while HDR is turned on in Windows could help fix the issue.

mnisius commented 3 weeks ago

Just because the screen is capable of a brighter image does not mean you have to use it all the time.

You can control the brightness of SDR content in HDR mode with a slider in the windows hdr settings. And if you set target-trc=srgb this slider will also change the brightness of the played file in mpv.