ACES Linear EXR to LogC4 for Editorial and Online

Hello ACES Community,

I’ve been working on some software using FFMPEg to help me take an image sequence from an artist and to create editorial DNX and online H264 MOV files. Very basic stuff.

My typical color pipeline is LogC EXRs or DPX that I put a CDL and LUT on with FFMPEG, encode and done. It’s a 1:1 color match and it’s made me very happy…until now.

Now I have a linear EXR color pipeline that I’m having to dig into ACES workflows, and I’m new to this, so I’m pulling a bit of hair out here.

Here’s a bit of a break down to the road that got me here:

  • FFMPEG doesn’t have OCIO support, and I can’t figure out how to get from Linear to the right colorspace using FFMPEG tools
  • Explored making intermediate EXRs using oiiotool and ACES 1.3 config using --colorconvert lin_ap1 arri_logc4 with great success
  • Matched the LogC4 oiiotool exrs inside Resolve with my Linear EXRs (applying a Color Space Transform) and it’s a 1:1 match!
  • Used the intermediate LogC4 EXRs inside FFMPEG, applying CDL values and show LUT (AWG4LogC4_Rec709g24_ff_33x.cube) and the color is just a smidge off (slightly dark and pink), and it varies from shot to shot (it seems) based on the brightness of the shot.

This makes me sad, because I know I can get a 1:1 match somehow. So now I want to explore using my ocio config and applying the lin to logc, CDL and LUT using oiiotool directly, and then encoding those EXRS in FFMPEG without having to do any color transforms.

A) Is this possible?
2) How? I’m so new to this, reading an OCIO file is breaking my head, but happy to try and learn if there’s a way to do it
D) Am I even on the right track here?

Thank you so much for any help and support!

Hello, I think another ASWF initiative might help you:

They do recommend the oiiotool intermediate space to produce a color-converted image, however the output being a png and not EXR (I remember EXR support in ffmpeg not being that great):

Thank you for this.

I’m ok getting intermediate Logc exrs from oiiotool, but now I want to try and add the CDL and LUT within the config.

I’m using the latest studio-config-v2.1.0_aces-v1.3_ocio-v2.3.ocio and I’ve been using oiiotool to get logc4 EXRs using the --colorconvert arri_logc4 command, and the config looks like this:

  - !<ColorSpace>
    name: ARRI LogC4
    aliases: [arri_logc4]
    family: Input/ARRI
    equalitygroup: ""
    bitdepth: 32f
    description: |
      Convert ARRI LogC4 to ACES2065-1

      CLFtransformID: urn:aswf:ocio:transformId:1.0:ARRI:Input:ARRI_LogC4_to_ACES2065-1:1.0
      ACEStransformID: urn:ampas:aces:transformId:v1.5:IDT.ARRI.ARRI-LogC4.a1.v1

      AMF Components
      ACEStransformID: urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.LogC4_to_ACES.a1.1.0
      ACEStransformID: urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.ACES_to_LogC4.a1.1.0
    isdata: false
    categories: [file-io]
    encoding: log
    allocation: uniform
    to_scene_reference: !<GroupTransform>
      name: ARRI LogC4 to ACES2065-1
        - !<LogCameraTransform> {log_side_slope: 0.0647954196341293, log_side_offset: -0.295908392682586, lin_side_slope: 2231.82630906769, lin_side_offset: 64, lin_side_break: -0.0180569961199113, direction: inverse}
        - !<MatrixTransform> {matrix: [0.750957362824734031, 0.144422786709757084, 0.104619850465508965, 0, 0.000821837079380207, 1.007397584885003194, -0.008219421964383583, 0, -0.000499952143533471, -0.000854177231436971, 1.001354129374970370, 0, 0, 0, 0, 1]}

This works great. And so I tried adding to children:

- !<CDLTransform> {src: cdl.ccc, cccid: BF_0220}
- !<FileTransform> {src: logC4toRec709lut_ff_33.cube, interpolation: best}

And I got some very wacky outputs. Do I need to add some other transform steps in between or at the end?

I think I might have solved my problem:

/path/to/linear/EXRs/BF_0220.%05d.exr \
--colorconfig /path/to/config/config.ocio \
--colorconvert lin_awg4 arri_logc4 \
--ociofiletransform cdl.ccc \
--ociofiletransform lut.cube \
--resize 1920x1080 \
-o /path/to/output/EXRs/BF_0220.%05d.exr

Seems I might have been off on my colorconvert, but this is much better.

Hello @davidrice,

I’ll try to give you a hand. Lots to unpack.

  • LOG ERXs can be a bit wonky. Generally speaking you should try to avoid them as they could cause banding.
  • Are you at a facility or you are doing this as a service on your own?
  • What part of the ACES workflow are you struggling with?
  • Do you have access to nuke?
  • Do you need FFmpeg? Maybe use Resolve from a to z?
  • @MrLixm is pointing you in a good direction with ORI but FFmpeg has basically no color management. But ORI is good if you want to explore how to make better outputs from it.
  • What you want to try to do is to get either Nuke or Fusion and use the OCIO in there. At least you can visually confirm stuff.