I have recently purchased an Insta360 One X camera and am interested in using its Log video mode and doing post-production in Blender. Insta360 has produced a log lut for use in Premiere (Pro2_iLog_LUT_1.0.0.cube) which I'd like to use in Blender, because I đź’™ Blender & I'm a beginner not a pro.
From what I've read:
- OCIO (the colour management that Blender uses) supports .cube files (though I'm not sure the Iridas format is the same as Premiere but I don't get any errors)
- Premiere uses rec. 709 as it's internal colour space the same as Blender (though I might be wrong)
So I thought in theory this should work fairly easily. So I tried using it by adding this to the OCIO configuration file (config.ocio):
- !<ColorSpace>
name: Insta360 Log
family:
equalitygroup:
bitdepth: 32f
description: |
Pro2_iLog_LUT_1.0.0.cube for use with the Insta360 Log mode
isdata: false
allocation: lg2
to_reference: !<FileTransform> {src: Pro2_iLog_LUT_1.0.0.cube, interpolation: linear}
On some trial video the new setting in Strip Input -> Input Color Space looks a lot more washed out than the default sRGB setting, and very similar to the Raw and Linear settings. I'm assuming I should see the video in normal colour in the preview and render ports.
I have tried changing every parameter in the colorspace config (including those that aren't shown) with no real difference. I even converted the .cube to a .3dl using pylut with no real change. I can't help but think either my rec.709 assumption is wrong or I'm missing something entirely.
I hope someone can help & TIA!
(I have read all of troy_s's posts on luts and they don't seem to cover this sort of configuration / import)
Edit:
As an update and in response to troy_s's excellent answer for anyone else interested, I ended up with this:
- !<ColorSpace>
name: Insta3601XLogToRec709
family:
equalitygroup:
bitdepth: 32f
description: |
ONE-X-LUT-Final-V1.0.0.cube for use with the Insta360 Log mode
isdata: false
allocation: uniform
to_reference: !<GroupTransform>
children:
- !<FileTransform> {src: ONE-X-LUT-Final-V1.0.0.cube, interpolation: best}
- !<ExponentTransform> {value: [2.4, 2.4, 2.4, 1.0]}
from_reference: !<GroupTransform>
children:
- !<ExponentTransform> {value: [2.4, 2.4, 2.4, 1.0], direction: inverse}
- !<FileTransform> {src: ONE-X-LUT-Final-V1.0.0.cube, interpolation: best, direction: inverse}
(Spot that I didn't even manage to find the correct lut from the Insta360 website)
The colour result did seem to be slightly more rich than the camera's 'normal' mode, so I imagine this could be a useful tool if someone wanted to mess around with the 'look' of their output video without losing colour information on the way. But could also be a usable option if using Premiere is out of the question and you just need any other way to access some Insta360 log footage.
However the performance when previewing is awful when compared to say the sRGB built-in Input Colour Space (2fps vs 20fps) on a non-GPU Macbook Air. I tried modifying bitdepth, allocation and interpolation and nothing seemed to make a difference. I'm putting this down to:
- the .cube which appears to be a 3d lut rather than a 1d lut which I imagine are more difficult to process, and
- the exponent transform which again I imagine is some non-trivial calculation
For me I'm not sure this is going to be a usable workflow unless it speeds up significantly on my machine with a decent GPU. I may post back here with those results. Now I'm off to read Paul Chamber's blog posts! Thanks again troy_s!
Edit2:
I'm afraid on my GPU machine there was an improvement but it wasn't due to the GPU. The playback speed appears to be CPU-bound. Also I tried enabling proxies and increasing the cache size but neither made a difference. Oddly at certain points it did speed up to real-time and then slowed down again so I imagine it is trying to cache frames in the background but not managing to keep up.