Preview and rendering flicker

In this video we can see some of a flicker bug I encounter:

It happens on the red cape at 3:25 and a few more times in what follows mostly when the footage shows a dialog being brought up or closed (like at 4:15 or 5:24). It also happens within Shotcut itself in the preview. It seems like it’s a chroma-related adjustment being done and that sometimes the non-final version of the frame appears both in the preview and in the render, as if it was an intermediary state of the frame wrongly used as if it was in its final state. The YT video above was rendered with “0” threads (renderer was software x264, but I don’t think it matters much), when rendering again with only 1 thread the problem was still present but less so, and not necessarily in the same scenes, so for instance in the latter render the red cape at 3:25 doesn’t flicker anymore.

I have never seen that before or received a report about it. Are you certain the problem is not in your footage? If so, how?
Please show a screenshot of the Shotcut Properties panel for this footage.

When Shotcut is paused the cape appears dark, when playing the cape appears lighter and when pausing again it goes back to dark. Better if I send you the original footage too, it was made using OBS, iirc using nvenc.

Original footage:
How it looks when I pause/unpause:

What version number of Shotcut are you using by the way?

The latest stable release, 19.12.31

Convert the clip to Edit Friendly, solves the issue.

I downloaded it, but I am not reproducing your problem. I even used View > Scopes > Video Waveform to visualize it in a more data-oriented fashion, and I do not see it there either. I see it in your screencast video. Does it happen if you open the clip you gave me in the Source player and play/pause? Or, does it only happen in your project? Do you have any filters added to the clip in the project?

One strange thing I see in your clip’s details (Properties > menu > More Information) is that the color_space is set to bt470bg while color_transfer and color_primaries are set to bt709. bt470bg is a legacy colorspace (SD PAL). I am not certain that is the problem, however.

Interestingly, I see the problem after converting it (DNxHR MOV option). I see in More Info that color_space is converted to bt709. So, then I switched Video Mode from Automatic profile to HD 1080p 59.94 fps, and now the experience is swapped: I reproduce it on the original but not converted. Upon analysis, I see that Automatic selected Shotcut’s Rec. 601 colorspace from the videos bt407bg signal making it non-reproducible. The HD video modes are all bt709, which is what this project must be using.

Update: Converting to MP4 leaves color_space as unspecified and Shotcut picks 709 based on the resolution thereby not causing the problem. Converting to Ut Video MKV retains the original color_space and the problem still appears.

It also happens when I play the source, and there are no effects on this clip nor globally. And it does look like it could be a colour space conversion issue. The top of the MLT file does say <profile description="HD 1080p 25 fps" width="1920" height="1080" progressive="1" sample_aspect_num="1" sample_aspect_den="1" display_aspect_num="16" display_aspect_den="9" frame_rate_num="25" frame_rate_den="1" colorspace="709"/>, here’s the file in case that helps: (though obviously the dependency files are not included)

This is fixed for the next version. I found a bug in the engine with the current state of a cached frame’s color_space. (For a deeply technical reason, after a pause the frame is refreshed, which pulls it from the cache–the other reason why this was seen on play/pause.) Converting it to edit-friendly mp4 or mov is a workaround. You can fix your current project by converting files, renaming them, re-open the project, and use the missing files dialog to relink to the newly converted files.
Or, I can give you link to a nightly build tomorrow for you to use.

Thank you! I’ll use the nightly build.

Thank you, I confirm that both the preview and export work fine now.

1 Like