Gamma Issues on H.264 Exports

Hi All,

Firstly, what a great editor! Tried a few but this one seems to suit me great. Anyway …

I’m having issues when rendering my videos. The source material is coming straight off my video cards game capture features. The original files are in this format:

  • CODEC: H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
  • RES: 2560 x 1600
  • FRAMERATE: 59.9727
  • FORMAT: yuv420p

When I view the source assets I can clearly make out all the detail. The gamma looks fine when playing back in various players (VLC, Windows Movie Player etc).

I’ve then imported into a Shotcut project, done my edits and exported using various configurations. Same resolution as the source material. Using libx264 mp4 I’ve tried various rate controls VBR and Constant but the exports are always significantly darker.

I’ve also set my NVidia driver to make colour adjustments with the full dynamic range (0-255) but I’m still seeing this issue.

In Shotcut I have Settings -> Gamma set to sRGB (Computer) and I’ve not tried changing this yet.

What should I try next to rectify the problem?


Just to update this issue I’ve just tried a load of exports going straight to H.264 and ProRes and they are all suffering with a reduced gamma. Interestingly, if I switch the gamma to “Rec .709 (TV)” what I see in the preview window within Shotcut is what I’m getting in the rendered files.

How do I fix this? Or is this a bug in Shotcut?

First of all, Settings > Gamma only appears when you are using GPU Processing, which is clearly labeled experimental.

If you are using a recent version of Shotcut, then Settings > Gamma only affects the Shotcut preview and not Export. H.264 and x264 do not permit defining transfer characteristics (gamma) as sRGB. (see x264 help on the --transfer option). Thus, Shotcut tends to use and set Rec. 709 (aka BT.709) on Export (unless Settings > Video Mode defines otherwise). The Settings > Gamma option is offered because most computer displays are setup for sRGB while most videos are not using that. Some video players transform the gamma from source to display gamma while others do not. For example, on my system, Windows 10 Movie & TV app and Quicktime Player v7.7.8 appears to do the transform, while VLC v2.2.4 does not (by default). So, this is a display option only in Shotcut for a long while now. Your claims that Export is affected by this Gamma setting is absurd because the code (I wrote) does not in any way convey that option onto Export.

In summary, if you are using VLC to view the export, then you should leave your Shotcut Gamma setting at Rec. 709 to view it the same way that VLC shows it.

I just realized the clip I was testing with is using full range and not MPEG limits, and that is affecting how the different media players are showing the clip. I am not confident now that they are doing any gamma conversion from source to display. Is your clip using full range?