Dictionary

What Is Frame Rate?

Frame rate is the number of frames a video shows each second, given in fps. A metadata report can show it as a fraction, for example 25/1.

frame-rate

Frame rate is the number of still images, called frames, that a video shows each second. The unit is frames per second, written as fps. Technical standards also call it frame frequency.

In a video file, frame rate is a metadata value that describes the video stream. At 25 fps, each frame stays on the screen for 1/25 of a second, or 40 milliseconds.

Which files carry it

Video formats such as MP4, MOV, MKV, WebM, AVI, WMV, and FLV can carry a frame rate. Each format stores the value in its own way:

  • MP4 and MOV: a time-to-sample table lists runs of frames that have the same duration. ExifTool calculates VideoFrameRate as an average from this table. Some MP4 files also hold average and maximum rates in tags such as VideoAvgFrameRate and VideoMaxFrameRate.
  • MKV: the DefaultDuration field gives the time per frame in nanoseconds. The FrameRate field is informational only.
  • WebM: the format is a subset of Matroska and can use DefaultDuration too. The WebM guidelines mark FrameRate as deprecated.
  • AVI: the rate in a stream header divided by its scale is the frame rate.
  • WMV and FLV: the metadata can hold a frame rate tag.

An audio stream has no frame rate of this kind. FFmpeg's ffprobe shows 0/0 for it.

What the values look like

A report can show the frame rate as a decimal, such as 29.97, or as a fraction, such as 25/1. The fraction 25/1 means 25 frames in 1 second. A fraction stays exact when the rate is not a whole number.

These are typical values:

  • 24/1: 24 fps, the typical rate of motion picture film
  • 24000/1001: about 23.976 fps, which FFmpeg calls ntsc-film
  • 25/1: 25 fps, which FFmpeg calls pal
  • 30000/1001: about 29.97 fps, which FFmpeg calls ntsc
  • 50 and 60: common rates for video uploads, according to YouTube
  • 120: an upper limit, not a typical value. It is the highest rate in the ITU standard for ultra-high definition television.

Constant and variable frame rate

With a constant frame rate, every frame lasts the same time. With a variable frame rate, the time between frames changes during the video.

FFmpeg's ffprobe shows 2 fields: avg_frame_rate is the average rate, and r_frame_rate is a base rate. The base rate is the lowest rate that can represent all timestamps accurately, and the FFmpeg documentation calls it a guess.

For example, if frames last either 1/25 or 1/50 of a second, r_frame_rate is 50/1. The average is lower, so the 2 fields differ. Timestamps count in units of the time base.

Where the value comes from

A recorded video gets its frame rate during recording. An encoder can change it later, for example by removing frames to make the video smaller.

Interlaced video can show a different number. For this video, Apple's AVFoundation framework reports the field rate, not the frame rate.

Why it matters

Frame rate mainly affects how smooth the motion looks. A higher rate gives smoother motion, but the benefit gets smaller as the rate rises. Below about 12 frames per second, you see a series of still images instead of motion.

From 24 fps upward, motion generally looks smooth, and 30 or 60 fps is a good target. A higher rate also makes the compressed file larger, unless the encoder reduces the rate. So 60 fps can look smoother than 30 fps, but the file grows.

YouTube asks you to upload a video at the same frame rate you recorded it. At a constant rate, the rate multiplied by the duration gives the number of frames. So 25 fps for 4 seconds gives 100 frames.