0

I need to play a video using ffplay that was recorded with GeForce Experience screen recorder, but the rendered video has incorrect colors. It works correctly if I play it with VLC player, but I need it to be played with ffplay only.

Here's the video being played with VLC, which is rendered correctly:
image1

Here's the codec information:
image2

and this is how ffplay renders the video:
image3

2
  • That lools like an HDR to SDR tone mapping problem. Can you add a filter using -vf "zscale=transfer=linear,tonemap=hable,zscale=transfer=bt709,format=gbrp" as suggested by a comment at superuser.com/questions/1465562/…
    – Mokubai
    Commented Feb 12 at 7:15
  • that worked!! please add that as an answer so I can accept it! thanks! Commented Feb 12 at 8:51

1 Answer 1

1

The washed out colours are indicative of an HDR to SDR conversion issue. The Color transfer function: SMPTE ST2084 (PQ) indicates an HDR file.

It is possible that VLC is correctly detecting the type of content and the display and doing the correct tone mapping as a result.

You may need to add a filter to do the tonemapping. According to a comment at Why does ffmpeg's "tonemap" tone mapping filter give me different colors depending on the output format? a correct filter would be

 -vf "zscale=transfer=linear,tonemap=hable,zscale=transfer=bt709,format=gbrp"

So your ffplay command would become

ffplay -i input.mkv -vf "zscale=transfer=linear,tonemap=hable,zscale=transfer=bt709,format=gbrp"

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .