Full color range: final solution?


#1

Hi all,
I faced with an issue that after exporting video lacks of saturation.
I spent a lot of time searching for a cause of this problem. Finally I found that the issue is with color range, and I’m not the only one who has such problem.
I’m not a spec in video processing, but my understanding of a problem is: source video is encoded with full color range, and shotcut encodes result with limited color range, so the resulted video suffers some color degradation.
I found solution in this topic. Solution is to add two custom export options, and it works well for me.

So the question is: why doesn’t Shotcut make this automatically out of the box? Why can’t Shotcut properly convert colors even with limited resulting color range, insead of cutting off colors? It is very disappointing that I get color degradation by default.
I think that most of the people who notice this color issue with Shotcut will just blame this buggy tool and switch to some other software. Other people can just not notice this issue and will blindly get defective video, which is also sad.

I like Shotcut a lot, this is very easy to use but very powerfull software, and I hope this annoying issue will be fixed out of the box.


#2

Because it may lead people to believe that all image processing will be done at full range, which it does not depending on some filters and transitions.

It does not unless your clips have incorrect color range signaling. With proper signalling, the pixel values will be requantized/scaled to the current range within the processing pipeline with no clipping. If the clip’s color range is incorrectly signaled or misdetected then clipping will occur. It sounds like this is more your issue than the output range. Look at your clip’s Properties > Video > Color Range. Please be aware that the current version 19.01.27 has a bug such that when you change this color range to override it, Properties does not correctly reflect your change! This is fixed in the next version, for which there is currently a beta.


#3

Thanks for reply.

Because it may lead people to believe that all image processing will be done at full range, which it does not depending on some filters and transitions.

Maybe it could be an option with warning.

It sounds like this is more your issue than the output range. Look at your clip’s Properties > Video > Color Range

Source video has full color range, and it is correctly detected by shotcut.
Problem is that exported video looks less saturated than source. Colors are “washed out”. Looks like pixel values are not clipped but shrinked.


#4

Are you sure? It sounds like it does not even though it is signaled as such. Use View > Scopes > Video Waveform and step to different areas of the footage with the darkest and the lightest to see if the levels reach close to 0 and 100. For example, here is a screenshot where I took a clip that was limited, and changed Properties > Color Range to Full, and you can see the levels do not reach close 0 or 100 int he scope even though there is both very light and very dark in the shot.


#5

Here is a screenshot with waveform


#6

Thanks, I will add color range as an Export option in a future version. The minor but tedious challenge with this is that the pix_fmt option can depend on the codec being used and not always available :smirk:


#7

Thanks! Option would be really useful.
To be honest, I still don’t understand why exported videos with limited and full color range have such a difference in saturation. If pixel values are properly scaled for limited color range, both videos should look almost the same. Video player should detect that the video has limited color range and scale pixel values back while playing. I tested with several players and even different operating systems (windows 10 and ubuntu linux), and issue with saturation exists in all cases.
Do I miss something?


#8

Here is a small example. “limited” video is exported with default h264 main profile, “full” is exported with additional options: pix_fmt=yuvj420p, mlt_image_format=rgb24. On a screenshot it is clearly seen that “limited” video lacks of saturation comparing to “full”.
example.zip (3.0 MB)