Variable frame rate (or VFR) is a term in video compression for a feature supported by some container formats which allows for the frame rate to change actively during video playback, or to drop the idea of frame rate completely and set individual timecode for each frame.
So I understand this concept. But there's a myriad of questions this brings up, and most of the info pads are stubs:
Are all decimal fps vfr; can integer fps be vfr? Or is it specific to how the video was made, like when you record your screen with OBS and set the fps to 30, but get a decimal 29.777? Does vfr really only exist on real-life recorded video, but 3d/2d animation wouldn't have vfr? I don't see what being a decimal has to do with the definition, any integer value could fit it as well. I know you can use -vfrdet in ffmpeg to tell if something is vfr...but if all vfr are decimal then what's the point, why not just check the fps instead.
If you re-encode vfr video at the same fps, will the output still retain the same speed and number of frames or is there going to be some kind of data loss (outside of codec-quality-loss) that differs from constant fps? Does playback of a vfr video show ALL the frames or does it tend to skip frames (lets assume hardware is working perfectly)?
Why do video editors not 'all' support non-integer fps values? I mean anything I can express as a fraction of integers, should be available as an fps input setting imo...otherwise that defeats the point of "video editing". What exactly is the rationale for these supposed fully loaded video editors to limit you to only 5 preset fps i.e. (30/60/24/23.97/25). I'm even more confused cause some video editors, while they say they support 60fps, only support 60fps timeline editing... and the output's support fps value is listed (before you even export!) as 59.94 and I see OFFICIAL tutorial videos telling me and everyone that 59.94 is the same as 60. I'm not sure if that's related to vfr, or something else.
Is the fps value of a vfr just the average fps across the entire video? Or is it some more advanced means of averaging/calulating? What is even the role of having a singular listed 'average' fps in a vfr video? THe definition states the video is independent of any one fps...is there some kind of special data packet that tells the video player to playback the video in a certain way such that some parts are faster/slower in the desired fashion? Can't vfr technically mean the start of a video plays at 60 fps and the last 10 seconds play at 5 fps? How would a video player know to play the start at 60 fps...and the end at 5fps...if it only has 1 number to go off of.