Here some data I collected:
(macOS Sierra)
- example mp4 file:
Frames: 277 per seconds (* 1000) as reported by MovieInfo()
Length: 28228 frames as reported by MovieLength()
QT: 18:49 min movie length as reported by QuickTime
18 min * 60 = 1080 sec
1080 + 49 = 1129 sec total time
28228 / 1129 = 25.002 fps
example mp4 file:
Frames: 25000 per seconds (* 1000) as reported by MovieInfo()
Length: 65143 frames as reported by MovieLength()
QT: 43:26 min movie length as reported by QuickTime
43 min * 60 = 2580 sec
2580 + 26 = 2606 sec total time
65143 / 2606 = 24.997 fps
example mp4 file:
Frames: 999 per seconds (* 1000) as reported by MovieInfo()
Length: 2603 frames as reported by MovieLength()
QT: 1:49 min movie length as reported by QuickTime
1 min * 60 = 60 sec
60 + 49 = 109 sec total time
2603 / 109 = 23.880 fps
example mp4 file:
Frames: 29411 per seconds (* 1000) as reported by MovieInfo()
Length: 139327 frames as reported by MovieLength()
QT: 1:17:24 hours movie length as reported by QuickTime
1 hour * 60 = 60 min
60 min + 17 min = 77 min
77 min * 60 = 4620 sec
4620 + 24 = 4644 sec total time
139327 / 4644 = 30.001 fps
QuickTime (or VLC or MPV) always report the correct length of the movie.
PureBasic's MovieLength() seems to report the correct amount of frames...
Therefore PureBasic's MovieInfo() is the culprit here.
I'll gladly help in testing the fixed library.
Thanks