Velvet Star Monitor

Standout celebrity highlights with iconic style.

news

What is Variable Frame rate?

Writer Sophia Terry

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:

  1. 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.

  2. 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)?

  3. 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.

  4. 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.

1 Answer

  1. Are all decimal fps vfr; can integer fps be vfr?

No, a fractional number of frames per second can still be constant. For example NTSC (the US television standard) is a constant frame rate of 29.97 (often represented as 30000/1001) frames per seconds.

Does vfr really only exist on real-life recorded video, but 3d/2d animation wouldn't have vfr?

The content is irrelevant. Animation tends to be created with a specific frame rate in mind. But there is no reason that must be the case.

I don't see what being a decimal has to do with the definition

Nothing.

why not just check the fps instead.

What is "checking the fps" what does that even mean (see point 4)

  1. If you re-encode vfr video at the same fps,

It totally depends on HOW you encode and how the tool you use to encode works. Most tools will passthrough whatever comes in to the output not modifying frame rate (unless you tell it to)

Does playback of a vfr video show ALL the frames or does it tend to skip frames

Depends on the device. For example, If your tv is 60Hz and you encode 61 fps it CANT display every frame, But If the content averages 60Fps, but it bursts to 62, the TV may spread out the frame evenly and display them all, or it may drop two frames, and later repeat 2 frames. Every display is different, and there is no rule on what it should do.

  1. Why do video editors not 'all' support non-integer fps values?

You will need to ask the creator of those tools. There is no reason other than laziness, cost or simplicity that would prevent such a feature in any tool.

To expand on the simplicity point, in many cases the frame rate the user asks for is just not possible. For example RTMP uses 1khz clock, meaning even 30fps CFR is not possible (30 does not divide evenly into 1000, it becomes 30 fps AFR with two thirds of frames being 33ms long and one third 34ms long), If the UI has a ratio where the user can type in any value they want for frame rate, they will very often end up with a result they didn't expect due to limitation of the video format they chose.

telling me and everyone that 59.94 is the same as 60 It is absolutely not the same thing. In most cases it won't matter, And for internet video, it will never matter, but for some broadcast TV workflows, frame rates must often be exact for the different pieces of equipment to work together.

  1. Is the fps value of a vfr just the average fps across the entire video?

There is no standard on how top calculate average frame rate. The software my just read a value out of the header, it may calculate the average of the first few seconds, or it may calculate the frame rate over the whole file. Every tool works differently.

What is even the role of having a singular listed 'average' fps in a vfr video?

connivence.

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?

No, every frame has a time stamp associated with it. The player just displays a frame until it's time to display the next frame. It speeds up and slows down on every single frame.

Can't vfr technically mean the start of a video plays at 60 fps and the last 10 seconds play at 5 fps?

Yes

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.

It doesn't have 1 number to go off of. It has 1 number per frame.

7

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy