Shotcut appending 1 second still frame to some video clips

What is your operating system?
Windows10 Pro 64bit

What is your Shotcut version (see Help > About Shotcut)? Is it 32-bit?
23.05.07 64bit

Can you repeat the problem? If so, what are the steps?
(Please be specific and use the names as seen in Shotcut, preferably English. Include a screenshot or screen recording if you can. Also, you can attach logs from either View > Application Log or right-click a job and choose View Log.)

Some GoPro video clips I open in Shotcut have a 1 second still frame appended to them. I have to split and ripple delete this to get the next clip to join seamlessly.

For instance, a 17min38sec clip becomes 17min39sec clip with the last second a still frame. I have checked all clips with exiftool and they are definitely 17min38sec. I have never seen this behaviour before with versions using Qt5

There are frames past seconds.
HH:MM:SS:FF

Example: this project has a 30FPS Video Mode
The blue clip is 38 seconds, with 28 frames.
The red clip is the same length.
shotcut_2023-05-13_21-09-14

What does Shotcut show when you click on that clip, then Properties?
Can you share that screenshot?

1 Like

It shows 00:17:39:00 but the source video clip is really 00:17:38:00. If I open the same clips in Shotcut 12.22.21 (Qt5) it shows 00:17:38:00 (no screendump as I can’t have more than 1 version of Shotcut on my PC).

Interestingly if I open that project saved with 12.22.21 into my current version, all clips show with correct times.

I should add that my GoPro clips are shot at 50FPS. Shotcut 23.05.07 is adding 50 identical frames (with no audio) at the end of certain clips which is the 1 second of still picture. These clips are produced at the beginning of each recording session, i.e. GH010300 is followed automatically in the GoPro by GH020300 which is correct at 00:17:38:00.

If I use Shotcut 22.12.21 to open both these clips, they are BOTH correct at 00:17:38:00. The same applies to all my GoPro clips in all previous (to 22.12.21) versions of Shotcut. This is a NEW problem.

I’ve looked at both the above clips with exiftool and can’t spot any difference apart from data length (different movie content obviously)

I did try Shotcut 23.04.20 which produced the same error.

I have a lot of GoPro videos, but I was not able to reproduce this. None of mine are 50 fps though. We get the duration from FFmpeg, and this version includes a new version of FFmpeg. So, it could be there. It will help to provide which model GoPro you are using. Also, report from one of the clips that has this problem: Properties > Duration, and Properties > menu > More Information.

GoPro is Hero 7 Black. File GH010061.mp4 has 17:38 of video but duration in properties shows 17:39

GH010061_ffprobe.txt (5.2 KB)

More Information > ffprobe file is attached. For security, I have removed the GPS location information at the end of these files.

Streams 0 and 1 are the video and audio streams and show durations of 0:17:38.000000 and 0:17:38.005333 respectively. Stream 2 is data and 0:17:38.000000. Stream 3 is binary data and 0:17:39.000000. Stream 4 is data and 0:17:39.000000.

GH020061_ffprobe.txt (5.2 KB)

File GH020061.mp4 is the next automatically recorded clip also at 0:17:38, but the ffprobe output shows durations of 0:17:38.00 in all streams.

I don’t know if previous versions of ffmpeg behaved differently, but maybe Shotcut is looking at the wrong stream lengths?

Shotcut (MLT) uses a summary duration from ffmpeg, not of individual streams. That seems to be reporting now the maximum of all streams.

Yes. But if MLT is always going to use the stream summary from the new ffmpeg, then I will always have to manually trim 1 second off these particular video clips in future?