Accurately Timing Video Frames: A Guide to 29.97 and 59.94 FPS

Pope Kim Feb 24, 2023

Understanding video frame rates can be tricky, especially if you come from a real-time graphics background where everything is measured in milliseconds. Most video formats use a simple frame rate of 30 frames per second (FPS), which translates to 33.3333 milliseconds per frame. However, when it comes to 29.97 and 59.94 FPS video, the timing is a bit more complicated.

The reason behind the development of 29.97 and 59.94 FPS video is beyond the scope of this article, but it's worth noting that these frame rates are used in certain video formats, such as NTSC. Instead, let's focus on how to calculate the exact timing of each frame.

To start, it's important to change your mindset from measuring time in milliseconds to measuring it in frame index. The first frame in the video is frame 0, the second frame is frame 1, the third frame is frame 2, and so on. This will make it easier to calculate the timing of each frame.

For 29.97 FPS video, there are 30 frames over 1,001 milliseconds. (In comparison, 30 FPS video has 30 frames over 1,000 milliseconds, which translates to 30 frames per second.) Using this knowledge, we can calculate the timing of each frame in 29.97 FPS video using the following formula:

Frame timing = (frame index / 30) * 1001

For example, if the frame index is 25, the timing of that frame would be:

Frame timing = (25 / 30) * 1001
Frame timing = 0.8333 * 1001
Frame timing = 833.33 milliseconds
Frame timing = 00:00:00.833

If the frame index is 2000, the timing of that frame would be:

Frame timing = (2000 / 30) * 1001
Frame timing = 66.6667 * 1001
Frame timing = 66,707.99 milliseconds
Frame timing = 00:01:06.708

If the video is 59.94 FPS, the formula to calculate the timing of each frame would be slightly different than for 29.97 FPS.

For 59.94 FPS video, there are 60 frames over 1,001 milliseconds. Using this knowledge, we can calculate the timing of each frame in 59.94 FPS video using the following formula:

Frame timing = (frame index / 60) * 1001

Understanding the timing of each frame in 29.97 and 59.94 FPS video is important for video production and post-production. (I personally needed this knowledge to develop a video auto editing feature at POCU Academy.) By using the formulas provided above, you can accurately calculate the timing of each frame and ensure your video is synced properly.