When following the FfmpegOcio.md guidance to convert from RGB (OCIO filter output) to YCbCr using the scale filter, I noticed a perceptible difference from the EXR source. Swapping scale for zscale resolved it and much closer to the source in my testing.
Example:
ffmpeg -y -framerate 24 -start_number <STARTFRAME> -i SOURCEFRAMES.%05d.exr \
-c:v prores_ks -profile:v 1 -pix_fmt yuv422p10le \
-vf "ocio=input=ACEScg:output=ACEScct:format=rgb48,zscale=matrix=709:primaries=709:primariesin=709:transfer=unspecified:transferin=unspecified:rangein=pc:range=limited" \
-movflags +faststart+write_colr -vendor apl0 OUTPUTFILE.mov
I don't have CLA clearance setup yet, so sharing my branch here instead: ffmpeg-ocio-zscale-command on my fork, which adds a zscale note + alternate examples to FfmpegOcio.md alongside the existing scale-based ones. Happy to edit, have someone pick it up, or I can open the PR myself once CLA is sorted.
Let me know what your prefer,
Cheers!
When following the
FfmpegOcio.mdguidance to convert from RGB (OCIO filter output) to YCbCr using thescalefilter, I noticed a perceptible difference from the EXR source. Swappingscaleforzscaleresolved it and much closer to the source in my testing.Example:
I don't have CLA clearance setup yet, so sharing my branch here instead:
ffmpeg-ocio-zscale-commandon my fork, which adds azscalenote + alternate examples toFfmpegOcio.mdalongside the existingscale-based ones. Happy to edit, have someone pick it up, or I can open the PR myself once CLA is sorted.Let me know what your prefer,
Cheers!