I have a need to bake some ACES transforms into various LUT formats, and wish to correctly handle values >1.0.
So, I’m hoping to use ociobakelut and one of the ACES shaper spaces to achieve this (employing ACES 1.0.3 ocio config)
However, every space I’ve tried as a shaper (other than “Role - data”) results in:
OCIO Error: Error baking cinespace:The specified shaperSpace, 'crv_lmtshaper' has channel crosstalk, which is not appropriate for shapers. Please select an alternate shaper space or omit this option.
Has any one else attempted this? Any recommendations for a suitable shaper space? I’m aware there’s a handy selection of pre-baked LUTs in the OCIO config, but I’d really like to be able to create my own.
Thanks - that’s just what I need. Makes perfect sense.
Unfortunately I’ve not been able to employ my LUT successfully yet…
ffmpeg is my current target - I’d like to bake in the acescg->srgb transformation when creating mxfs (from exrs) for editorial.
I’ve been able to apply the generated LUTs, but highlights appear clipped - leading me to think either ffmpeg doesn’t support processing >1.0 values through a LUT, or that I’m tripping up when composing my arguments for ffmpeg.
From my research Flame format 3dl LUTs provide the only intersection of “LUT formats supported by ffmpeg” and “LUT+shaper formats supported by ociobakelut”, so that’s what I’m using currently.
The 3dl LUT I have appears correct when applied in Nuke.
So if any one has any suggestions of how to tackle this in ffmpeg, that would be most appreciated.
.3dl is an integer LUT format, so I am not sure if it can support >1 input (or output) values. I am not certain though, as I cannot find a spec for the .3dl format anywhere. And there are a number of variations on the format in use, anyway. I’m pretty sure that the Flame variant is integer only.
Unclamped float input is supported by the Resolve and Adobe/Iridas variants of the .cube LUT format, and also by Truelight .cub files and Nucoda .cms files (since V3). There may be others, but many LUT formats certainly clamp input to the 0-1 range.
Set the 3D LUT file name.
Currently supported formats:
So possibly I should be looking at generating a csp from ociobakelut and translating that to cube by hand?
Or are there other approaches to get around this in ffmpeg - maybe using some chain of LUTs to go acescg->log->out_srgb?
Most production pipelines that I’ve seen isolate ffmpeg from any real color space processing. Nuke, oiiotool, RV or your image processing packag of choice is used to apply the LUT and convert from EXR to TGA/Tiff/your 8 or 16 bit int uncompressed format of choice. ffmpeg is then only responsible for encoding the quicktime / movie format using those 8 bit frames as a starting point.
One command-line option that is helpful in preserving the colorspace of the input images is: