in03 / proxima

Transcode source media directly from DaVinci Resolve using multiple machines for encoding. Great for creating proxies quickly.
MIT License
50 stars 3 forks source link

Data levels issues #200

Closed in03 closed 2 years ago

in03 commented 2 years ago

Problem

I'm a little confused about this. Not sure what's going on.

If data levels are set to auto (interpreted as "full" I guess), proxies are still being exported with limited range and they appear to have much more contrast; crushed blacks and blown-out whites. It doesn't happen for proxy media generated internally.

Add support

If we can get ffmpeg to encode with the correct data levels, we still need to know what the input levels are. Since clip properties returned through the api can have levels set to auto, we'll have to alert the user that they should probably set the clips explicitly to "full" or "video".

ProRes support hurdles

There's also a concern about using ProRes. ProRes doesn't have a flag to tell the player how the colour data should be interpreted. I believe Resolve 18 allows for ProRes proxies, so maybe we should see how they're handling it? Some additional custom metadata? Some internal forced level interpretation? A new implementation for 18 altogether?

If special handling is required for some codecs like ProRes, we may need to add some data-levels settings to the proposed render-presets. Something like:

- proxy_settings:
    - data_levels: ["inherit", "video", "full"] 
    - filters:
        - data_levels_whitelist: ["full", "video", "auto"]

Additional Resources

in03 commented 2 years ago

Looks like it may be possible to use ffmpeg signalstats to get the min/max values of the levels and use that to interpret the range. Not sure if this is what ffmpeg does by default and if we need to explicitly set any metadata on the container?

in03 commented 2 years ago

/cib

github-actions[bot] commented 2 years ago

Branch issues/issue-200-Data-levels-issues created!