Color banding and codecs -- follow up


I started a thread in Sep., '18, on this subject, but it has closed. I am still having issues with color banding. I got suggestions from Dan Dennedy, which I have tried. The 1st suggestion works marginally in some parts of a video clip, but actually seems to make it worse in other parts. That one was…

in Codec tab, change Quality to 75%
in Other tab, change preset= to slower
in Other tab, add x264opts=aq-strength=1.9 on its own line
optionally, in Other tab, add tune=grain on its own line

The second suggestion didn’t help much at all which was…

Here are some more options to try (requires version 18.08 or newer) in the Other tab:

and one of:

yuvj420p uses a greater range of the 8-bit values used in each color component of the pixels.
yuv420p10le uses 10 bits per color component. This may not work on all players and hardware decoders, but even if uploading to a service such as YouTube that will always transcode, it might survive the process better.

I have used these with the Shotcut version that I just downloaded on 01/23/19. I have a suggestion from a friend who is experienced at making videos. He suggests I use a codec call Xvid. I have put Xvid on my computer, but how can I get Shotcut to recognize it? I appreciate your prior suggestions. If you have any other ideas, please let me know. Thanks.


Xvid is a version of the very dated and highly non-recommended MPEG-4 part 2 codec. Xvid is only a slightly better version of the MPEG-4 (Codec: mpeg4) that is built into FFmpeg that Shotcut uses. You will find an Export preset for this in Shotcut under the “legacy” category. H.264 (x264), HEVC (x265), and VP9 far exceed the quality of that codec.


I do not have experience with preventing banding when encoding. I was mainly converting the recommendations from the reddit ffmpeg thread into Shotcut’s UI for you. Then, I added the full range and 10-bit mlt_image and pix_fmt options because they increase the numeric range of the output.

After doing some research tonight, it seems the tune=grain recommendation is for when people add a small amount of dithering or film grain to reduce the banding. You can try to use the Old Film: Grain filter in Shotcut for this (reduce the amount and increase the brightness). Often, codecs will try to remove the noise of these techniques, and besides the tune option, you probably need to increase the bitrate/quality to reduce that effort.

I suspect other things that may help is less chroma sub-sampling (different pix_fmts) and higher quality (see some of Shotcut’s intermediate and lossless presets). What do you need to do with the video? If you reduce it in the Shotcut output and then publish it somewhere like YouTube, you might end up dealing with a banding problem in their outputs.


Thanks for your suggestions and support. I tried the Old Film: Grain remark in the Other tab, and Shotcut doesn’t seem able to handle it, and ends the attempt immediately. I am compiling thousands of sequential images into video clips using Shotcut, then uploading to You Tube. Here is one of my recent videos. You don’t need to look at the entire video, just the first 30 seconds or so. You can see color banding in the water, especially to the right of the space craft. It’s not terrible, but is distracting, at least to me, and no doubt is unappealing to viewers.


You have mentioned nothing about the resolution, bit depth and colour space of these images.
The banding you are seeing could well come from the conversion of your jpg/png/bmp images to whatever codec you are exporting the video to.

You may want to try converting just a handful of these images to different formats and bit depths and look at the resulting video.

Once/if you find the magic combination, run all the images through something like imagemagick.
Plenty of resources on the web on how to process/convert whole directories of images via a batch/bash script.


Thanks for the help. I have been recording in JPG. I just tried recording in PNG, and the color banding is reduced, but not completely gone. I will have to do more experimenting, maybe trying other resources as you suggest.