I notice that exporting a video often results in some frames being dropped, and neighboring frames being duplicated. So I did this simple test:
Open a new empty project in Shotcut, 25 fps, Drag in an all-black jpeg
Apply the timer filter, so each frame displays its timecode, 0.04, 0.08, etc
Export, default settings.
The resulting file is normal up to 1.40 seconds. I am missing the frame for 1.40, and get 2 copies of 1.44. Again at 1.64 (I get two 1.68’s) and 1.92 and so on. Also strange, 1.16 prints as 1.15
This outcome is the same as viewed in VLC (frame by brame using the e key), Quicktime, and by opening a new project in Shotcut to view this new movie file.
Test with Windows 10
Shotcut 23.12.15
Video Mode 1080, 25fps 25fps 10sec.mlt (7.0 KB)
I added a few more filters. Text filters that show timecode and frame counts.
Exported this video:
Do you use an slow external harddrive for your photos?
I did have the same issues on Linux when my source jpeg files have been stored on an external harddrive. Especially when the file has a small size.
The OS refuced the file accesses for Shotcut even the file was fine on.
My solution was storing the jpegs on my main SSD and every worked as expected.
It also could be something about LC_NUMERIC, too. (international typeset mismatches).
Apply the timer filter, so each frame displays its timecode
That is not timecode and makes this more difficult to see and test than necessary. The default shows 2 decimal digits of seconds. Instead, use the Text: Simple filter, which defaults to real SMPTE timecode.
Export, default settings
With or without hardware encoder? Is Export > Video > Parallel processing turned on? I tested with both on, which is most pessimistic combination.
I have a 4 second video clip that reliably shows this problem time after time.
Answers to some questions: The hardware and parallel options are not selected
Dragged source file to the project timeline
All files are stored on internal SSD (M1 mac)
The problem occurs with either “timer” or “text: simple” filter
The problem does NOT occur with Shotcut version 22.12.21
Updated steps to reproduce problem:
New Shotcut project with Shotcut 23.12.15
Drag the attached file to the project timeline
Apply the Text: Simple filter (leave everything default)
Export (leave everything default)
Result: the output file is missing the following frames: 1:10, 1:16, 1:22, 2:07, 2:19, 3:07, 3:19 (all the frames are not missing in the project prior to export)
I reproduced it with Settings > GPU Effects (unstable) turned on. Is yours turned on?
Since I do not reproduce it with GPU Effects turned off, I made a clip called timecode.mp4. Then, turned GPU Effects back on and added timecode.mp4 to the timeline. Next, I added another text filter with timecode in a different color and position. Finally, export and review. It has the same problem with both timecodes skipping or repeating. I think this means there is a problem between the GPU and the encoder. It is interesting that preview does not show that.
I’m glad that you can corroborate the problem, even if it is with different settings than I have (GPU effects). I would like to learn what causes this. Until someone figures it out, I guess I will stick with version 22.12.21
OK, now I have reproduced it using your base1.mp4 even with GPU Effects turned off. Returning to my timecode.mp4 that I made loaded into the timeline with video mode made by base1.mp4, I reproduce it again. After File > Close and make a new project based on timecode.mp4 (video mode automatic), and I no longer reproduce it. Next, set a video mode with same frame rate (25) but different resolution, and it still does not reproduce. Do the same with base1.mp4 and not reproduced. Either, it is intermittent or certain conditions that cause the bug are not yet found.
I figured out the combination of factors that causes this:
macOS
Shotcut version 23.x
Automatic Video Mode
25 fps (video source or any non-video source that establishes video mode at 25 fps)
There is a possible workaround to set a non-Automatic Video Mode. (A video mode that matches base1.mp4 combined with base1.mp4 does not work, but one that is 25 fps 854x480 with display aspect ratio 16:9 does, for example).
Also, the problem goes away if you had used Automatic Video Mode and choose Properties > Output > Edit and change Resolution or Aspect ratio.