Custom LUTs on capture cards

When I saw that both OBS and Ecamm Live support Look-Up Tables (LUTs) on live video, I was quite excited, but I never had the chance to try them out until recently. And oh boy, it was quite disappointing, and it’s not really their fault, but rather the lack of information and documentation from all parties involved. But first, let’s talk about expectations.

Most video enthusiasts were hyped about the first Canon mirrorless cameras that offered C-Log and supported external ProRes recording, but neither Atomos nor Canon properly explained how to get the best quality. Their guides and tutorials never addressed the fact that the HDMI signal was full-range but lacked the metadata to tell NLEs like Adobe Premiere that the footage was full-range. This produced a high-contrast image that didn’t look good, and many YouTubers and reviewers published videos shot with that kind of bad footage.

The full-range issue was later addressed by Atomos with the “Legalize” toggle, yet even Gerald Undone didn’t give a clear, down-to-earth explanation of how to use it. Then there was the undocumented issue with the EOS R5: the camera showed the selected color space as Cinema Gamut in the menu, but neither the settings nor the documentation warned that the HDMI output would automatically switch to Rec.2020 when using Cinema Gamut (because the HDMI standard can’t handle Cinema Gamut). Again, many YouTubers and reviewers produced videos with a strong yellow tint from the Rec.2020 mismatch without noticing or caring.

After a lot of empirical experimentation and research, several YouTubers finally shared how to set up both the EOS R5 and Atomos Ninja V for the best quality and dynamic range: 4K (either UHD or DCI), C-Log 3, Rec.2020/BT.2020, “Legalize” toggle enabled, and using the correct LUTs on the Ninja V for white balance (with the RGB parade) and exposure (with false colors). Then, depending on whether the footage was destined for Adobe Premiere or DaVinci Resolve, you would disable the “Legalize” toggle before recording.

Once the footage was recorded, in the NLE you applied the technical LUT to get back the colorful Rec.709 look, and from there you adjusted everything to create the custom look for the video.

So when I saw that OBS and Ecamm Live supported LUTs, I assumed the workflow would be similar: set the camera to a LOG profile, connect it to an HDMI video capture device, and apply the technical LUT inside OBS or Ecamm Live. But that doesn’t work as expected.

Color spaces, HDMI standards, and capture devices

The EOS R outputs a 10-bit, 4:2:2 YCbCr HDMI signal up to 3840×2160 (4K UHD) when using C-Log in Rec.2020/BT.2020. The EOS R5 outputs 10-bit, 4:2:2 YCbCr up to 4096×2160 (4K DCI) when using C-Log 3 in Rec.2020/BT.2020.

We use 10-bit 4:2:2 LOG because it gives us plenty of dynamic range and color information for grading. Grading 8-bit material can produce banding due to insufficient dynamic range, and 4:2:0 chroma subsampling lacks the full color resolution needed for serious grading. These are the minimum acceptable standards; high-end professionals use 12-bit or 16-bit RAW without chroma subsampling to grade without any noticeable loss. 10-bit 4:2:2 LOG is the baseline expected for proper custom LUT work.

You would expect capture devices to receive that signal and pass it unchanged to OBS or Ecamm Live so a technical or creative LUT could be applied cleanly. But that doesn’t happen, the LUTs look awful and colors are completely wrong. Why? It all comes down to a severe lack of documentation.

Documentation? What documentation?

I tested the Elgato Cam Link 4K, Elgato HD60 S+, and the Pengo 4K HDMI grabber. After failing to get correct results with the technical LUTs, I went looking for detailed specifications on color spaces and bit depth. Elgato’s official pages only list supported resolutions, no mention of color spaces or bit depth handling. After exhaustive searches on forums, knowledge bases, and support sites, I found almost nothing. Eventually, with the help of AI tools that dug up obscure sources, I discovered the real limitations.

It turns out the Elgato Cam Link 4K and HD60 S+ cannot handle Rec.2020 + 10-bit in 4K, only in 1080p. The Pengo 4K can handle Rec.2020 10-bit, but only by internally downsampling 4K to 1080p. Worse, in OBS the only available color-space options are Rec.601 and Rec.709, there is no Rec.2020 option at all. The LUT filter even explicitly states “Settings only apply to SDR video” (i.e., Rec.709).

A partial workaround is to drop the camera’s HDMI output to 1080p to get 10-bit, but even then Rec.2020 never appears in OBS. At least OBS lets you choose YUY2 (4:2:2) “YUY2 – 422YpCbCr8_yuvs” instead of NV12 (4:2:0) “NV12 – 420YpCbCr8BiPlanar” as the input format. However, even when setting both the EOS R and R5 to the older C-Log1 in Rec.709, the results don’t match external ProRes or internal MOV recordings:

  • HD60 S+ has a slight green shift,
  • Cam Link 4K has a slight magenta shift,
  • Pengo 4K has an even stronger green shift in the shadows.

OBS at least lets you set input format and signal range (full/limited). Ecamm Live offers no such controls at all.

All of this makes me wonder: How are other people actually using the LUT feature in OBS or Ecamm Live? Or is it largely a gimmick?

In my research I found that the newer Elgato 4K X appears capable of passing 10-bit Rec.2020, but I’m not buying yet another capture device without confirmation that OBS or Ecamm Live can actually use that color space and bit depth correctly.

Some other findings

  • The EOS R works best in full-range with Elgato devices.
  • The EOS R5 needs limited range with Elgato but full range with the Pengo 4K.
  • The Pengo only accepts exact frame rates (24, 30, 60 fps etc.), it rejects 23.976, 29.97, 59.94.
  • For reasons I don’t understand, both EOS R and R5 always output 1080p over HDMI at exactly 60.000 fps regardless of the camera’s frame-rate setting.

In conclusion

To use a real LOG profile with a custom/technical LUT in OBS or Ecamm Live today, you have to choose one of two compromises:

  1. Drop to 1080p to get 10-bit, but you’ll be stuck in Rec.709 because OBS has no Rec.2020 support, or
  2. Stay in 4K UHD but accept 8-bit Rec.709 (e.g., using the older C-Log1).

The only clean long-term solutions appear to be:

  • Upgrading to a significantly more capable capture device that truly passes 10-bit Rec.2020 4:2:2 in 4K, combined with future software updates that actually support it, or
  • Switching to newer Canon bodies that can apply LUTs internally (e.g., EOS R1, R5 Mark II, R6 Mark II, R5 C, R50 V, etc.).

Leave a Reply

Your email address will not be published. Required fields are marked *

Releated

FX30 + Ninja V + ProRes HQ, Updated!

This is an update on a previous article: https://rodrigopolo.com/2024/04/04/fx30-ninja-v-prores-hq-how-to/ Almost everything in the article is valid, specially on how to setup the camera, but there is a small change that would make a world of difference and your life much easier. Instead of relying on the “Legalize” toggle, disable it and ignore it completely, then, […]

Imitating Steve Chan looks

I have been a fan of Steve Chan’s channel, DSI Pictures for many years, and with the recent release of the EOS R6 Mark III, Steve shared a video showcasing the capabilities of the camera, including the 6.9K edited file and RAW footage, which open a window to see both, the capabilities of the camera, […]