GNU/Linux bit (fedora) 64 bit, intel CPU, nvidia GPU
Short description of error
scene.render.fps and scene.render.fps_base both have an upper limit of 120, presumably an attempt to limit frame rate to that number. However, the actual framerate is a ratio: rate = fps/fps_base , so limiting does not make sense as: 100/0.1 = 1000 which does not trigger the limit, but 24000/1000 should be 24 (no problem) but blender will result in 1 fps since it actually does 120/120
Exact steps for others to reproduce the error
Here is an example video file: video example
On a linux system, use the following command to get the frame rate settings for the file:
ffprobe -loglevel error -select_streams v:0 -show_entries stream=r_frame_rate -of default=nw=1:nk=1 drinception.mp4
this will give the result
Now try in a blender console (or the UI):
bpy.context.scene.render.fps, bpy.context.scene.render.fps_base = 24000, 1001
the result will be 120/120 e.g. 1 fps.
I found this while doing a batch script using blender and some input videos.
while any(f > 120 for f in (fps, fps_base)): fps = fps / 10 fps_base = fps_base / 10 bpy.context.scene.render.fps, bpy.context.scene.render.fps_base = fps, fps_base