Why shotcut think the mp4 as variable frame rate?

Get the fps with ffprobe

ffprobe -v error -show_entries stream=r_frame_rate -of default=noprint_wrappers=1:nokey=1 sample.mp4
24/1
0/0

The fps in sample.mp4 is 24 frame per second.Why it says it is variable frame rate when to open it with shotcut?

It does use FFmpeg to get the fps, but ffprobe does not report if a file is variable frame rate. One might be able to infer from that, but there is other code I wrote that check the times for the first 20 frames:

Feel free to submit a pull request if you have something better.