About Drop Frame and Non-Drop Frame Timecode

NTSC video (black-and-white) originally had a frame rate of 30 fps, so the timecode counted at 30 fps. However, NTSC color video (the only kind of NTSC video in use today), has a frame rate of 29.97 fps. This subtle difference between 30 fps and 29.97 fps seems practically negligible and, in many cases, ignoring this discrepancy is fine. But not always. What editors needed, especially in expensive broadcast markets, was timecode that accurately reflected the exact duration of a program on tape.

There are two types of 30 fps timecode for use with NTSC video: non-drop frame and drop frame. Non-drop frame timecode is simple: for every frame of video, there is a corresponding timecode number. The timecode increments without any compensation. In almost all cases, timecode is non-drop frame. In fact, drop frame timecode only matters in the case of NTSC video.

Drop frame timecode compensates for the fact that the NTSC format has a frame rate of 29.97 fps, which is .03 fps slower than the nearest whole number frame rate of 30 fps. Timecode can only be represented by whole numbers, so timecode numbers are periodically skipped in drop frame timecode. This way, the timecode number always matches the seconds and minutes of video that have played. NTSC can use either drop frame or non-drop frame timecode.

Important: No video frames are dropped when you use drop frame timecode. Only the associated timecode numbers are skipped.

You can think of drop frame timecode as being like leap years on the calendar. In the case of leap years, an extra day is added every 4 years except when the year is divisible by 400. This compensates for the fact that the way days are measured and the way years are measured do not align exactly. Even though the difference is slight, an unacceptable error accumulates over time unless regular adjustments are made to the count.

More About Drop Frame Timecode and the NTSC Frame Rate

NTSC video has a frame rate of 29.97 fps, but the timecode counts at 30 fps. To better understand this subtle distinction, remember that the main purpose of timecode is to uniquely label and address each video frame, not to tell time (another name for timecode is address code).

Consider what it would be like if frames were labeled a different way, without any reference to time. For example, if each frame had a unique address coded with five letters of the alphabet, starting at AAAAA, AAAAB, AAAAC, and so on until ZZZZZ, editors would refer to shots and scenes by their individual five-letter codes. A director requesting a particular shot could look in the log notes and tell the editor to find frame ABAAA on a particular tape.

On tape or disk, each frame lasts 1/29.97 of a second. Since there is an address affixed to each frame, the timecode moves at the same rate as the video (29.97 fps).

Now, instead of using a five-letter code to uniquely tag each frame, consider using an address code in the format 00:00:00:00. Remember that these numbers don’t reflect time; they are simply unique identifiers. The first frame of NTSC video is labeled 00:00:00:00. The 29th frame is labeled 00:00:00:29, and the 30th frame is labeled 00:00:01:00. Again, just because a frame is labeled 00:00:01:00 does not mean that 1 second has passed. The frame could just as easily have been named AAABD, in which case there would be no temptation to read the label as a time value. Only the frame rate of the video can determine how much time has passed by the 30th frame. In the case of NTSC video, 0.999 seconds have passed by frame 30. By frame 1800, 60.06 seconds have passed.

Frame count
Timecode labels (30 fps)
Time passed (29.97 fps)
Error between timecode number and real time
1/30 of a second
1/29.97 of a second
= 30/30 of a second
= 1 second
= 30/29.97 of a second
= 1.001 seconds
0.001 seconds
= 60/30 of a second
= 2 seconds
= 60/29.97 of a second
= 2.002 seconds
0.002 seconds
1800/30 of a second
= 60 seconds
= 1 minute
=1800/29.97 of a second
= 60.06 seconds
= 1.001 minutes
0.001 minutes
0.06 seconds
1.8 frames
= 18,000/30 of a second
= 600 seconds
= 10 minutes
= 18,000/29.97 of second
= 600.6 seconds
= 10.01 minutes
0.01 minutes
0.6 seconds
17.9 frames
= 108,000/30 of a second
= 3600 seconds
= 1 hour
=108,000/29.97 of a second
= 3603.6 seconds
= 1.001 hours
0.001 hours
3.6 seconds
107.89 frames

If you edit an hour-long program on NTSC video, the 30 fps timecode indicates that the last frame of the program is frame 108,000, labeled as timecode 01:00:00:00 (non-drop frame). However, the table above shows that because the video actually runs at 29.97 fps (each frame is slightly longer than if it were running at 30 fps), 1 hour has actually passed at frame 107,892 (3.6 seconds earlier than the 30 fps timecode shows). What editors wanted, particularly in television environments, was a method of frame addressing that accurately reflected how much time had passed.

Drop frame timecode was invented to compensate for the discrepancy between 29.97 and 30 fps. Every minute except each tenth minute, two timecode numbers are dropped from the timecode count. This drop frame mode of 30 fps timecode remains accurate compared to the actual time passed, with a strange side effect that two numbers each minute vanish from the count.

The Difference Between Frame Rate and Timecode

The frame rate of your film or video describes how rapidly frames are photographed or played back. It refers to the physical speed of image capture and playback. Timecode is merely a method of labeling frames with unique identifiers to easily find them again later. It is a convenient way of giving each frame a name that can be referred to later without having to verbally describe and visually search for it. Even though frame rate and timecode are independent, people commonly confuse the two, which can lead to frustrating problems in post-production. Before you start a project, be certain that you understand the difference between these two terms.