Video syncing and framerate issue (examples included)

Windows 10 Version 22H2
Shotcut Version: 23.07.29

Firstly, for context, I have a video clip that I have exported with Shotcut and I have a version of the export that was edited into a greenscreen by using Runway. Right now, I am using a new project in which I have just opened both video files on their own. I will refer to this as project A. Looking in the playlist, the videos are both 16 frames. My goal is to layer the greenscreen footage over the original clip and have them in sync for my main project.

Next I am using another project which is the main one that I’d like to have both video files stacked together in. I’ll be calling this project B. In project B, I have imported the same two files, but this time it shows up that the length is 19 frames instead. This project already has a lot of files (over 100) because it’s the main project I want to work on.

When I take my Runway export and layer it over the original clip I used, and put them in a Shotcut project with multiple files already in it, the frames are out of sync despite being from the same source. This can be very inconvenient if I’m trying to have a green screen effect layered over the original footage and there’s a double because the frames are misplaced and it appears when scrolling frame by frame, that some are duplicated when they shouldn’t be.
In my screen recording, I will invert the colours off the green screen version so it stands out as a better example. I also haven’t altered the speed of the clips at any point during the creation of either project.

Note: for project B’s export, I have trimmed the rest of the project just to keep the relevant clip.

This video and its green screen have been exported by Shotcut from a source clip. Exporting clips with Shotcut have changed their frame rates and misplaced some frames with some being duplicated I have layered the exported clip over the original source footage and I have synced them up.

The green screen was made with runway by using the exported clip from Shotcut. Runway doesn’t cause the problem because the original export from Shotcut is also out of sync when layered with the original clip that I exported from. I’ve tried setting the opacity to 50% to show how the frames are not blending together because if the flames weren’t out of sync there would be no visible effect here.

I have included a link to a mega folder which has the project and its source material. For reference, when syncing the two videos together you should start the sync on the exact frame where the camera angle changes (so its the shot with the box falling)

In this screen recording example, I am cycling frame by frame and as you can tell, it doesn’t add up as some frames are being duplicated. This is not a problem on the new project (project A) since it doesn’t have the extra 3 frames.

link: 23.88 MB folder on MEGA

Looking at your content, I see you have at least two frame rates going on:

project A properties
project A properties (greenscreen)

If you want your clips to be frame aligned, with no frames skipped or repeated, then you will have to make special effort to make sure that the frame rates on absolutely everything matches:

  • Original clip
  • Green screen clip
  • Shotcut Video Mode for both projects
  • Frame rate in the advanced export panel
1 Like

Is there a way to change video file frame rates to automatically match the project’s frame rate when imported into the project? if so, how can I do it?
I have tried changing the video mode and that has misplaced all the items in my project and messed the whole thing up and I have been unable to recover it and get it in its original state again. My project is ruined so is there a way I can fix this? Or is my whole project’s frame rate and resolution permanently fixed to the video file I first imported?
I have an export of the clip from that project which is: 1920x1080 and 30fps. However, when I change the video mode settings back to this, all the project files are still misplaced and my project is still unusable. I spent hours on this.

I want this project to be at 720P and the frame rate of 23.976024 since I am working on the master project for a bunch of clips that will all be exported from their separate projects and then edited into one big project when they’re all finished. For this specific project I may have uploaded a video file with a different frame rate and different resolution first rather than the desired one and I didn’t know at the time. So because of that, was my whole project doomed from the start?

Thank you.

No.

However, if you use the Shotcut “Convert…” feature on the original files, you can change the frame rate. But you would need to rebuild your project around the converted files.

It was not off to a good start.

When frame rates do not match, Shotcut will skip or repeat frames to align them the best it can. If you have a project where frame alignment is very important, here are some steps you can take in the future to get good results:

  1. Choose your output frame rate first and choose a video mode that has that frame rate. When making this choice, it is good to consider the frame rate of your source clips.
  2. If your source clips have variable frame rate or mis-match frame rates, you can use the "Convert…
    feature in Shotcut to convert them to the project frame rate. This may not be strictly required, but it will help to get expected results.
  3. Do not change the advanced export settings - especially the frame rate. By default, Shotcut will match the export frame rate to the video mode.
1 Like

Ok, I appreciate your help. I will certainly do this from now on.
Is there a way to restore my project without having to re-edit it from scratch?
I have sorted out the issue about frame rates by asking ChatGPT to write a Python script that automatically batch converts video files into having the desired frame rate I want (23.976024). That method took less than 5 minutes.

For every project I’m making on Shotcut, do I have to change the video mode at the very start to avoid any resolution or frame rate issues?

I have a lot of sub-projects and all their exports will be compiled into one continuous master project since this will be very large and has to be done in parts with individual projects for each scene of an edited movie. Some exports are already done and probably have different resolutions and framerates than the ones I’d like. Will this be much of an issue if I just shrink everything down by setting the video mode to 720p or upscale the final project into 1280p (if I want it higher res)? Also, will slightly different framerates be noticeable?
Thank you very much for your help.

That is a best practice, yes.

Changing the video mode resolution is mostly safe - however, there are some filters where you might find a position appears in a different relative position with the changed resolution.

That depends on many factors - like fast vs slow motion, and whether you require frame accuracy.

In my experience with changing the video mode, I have to go back through my project from beginning to end and make a few corrections. But I don’t typically have to start over.

Ok thank you I’ll take your advice in the future as it can help out a lot. Do you have any solutions on how I can fix my project? Because by looking at the details of my exported MP4 file from before the problem occurred, my project’s original resolution is 1920x1080, and my framerate is 30fps.
I have set the video mode of my project to the frame rate and resolution of that export and the problem still persists with my files misplaced and the project remaining corrupted (it’s not really corrupted but it acts like it is). Is there any way can salvage it? I don’t have any backups, unfortunately.

I don’t really have any other suggestions. If you have restored the video mode to what it was previously, then there must be something else causing the problem.

Capture
I may just have to re-tweak my project and start almost all over again or just build around the export I’ve already made. Because there is no reason this shouldn’t work, but it just doesn’t. Thanks for the help.