Why drop-frame exists
NTSC-related video commonly runs at 29.97 frames per second, not an exact 30. If you label those frames as if they were exactly 30 fps, the timecode clock slowly drifts ahead of real elapsed time by about 3.6 seconds per hour.
Drop-frame timecode fixes the label drift. At 29.97 fps, it omits frame numbers 00 and 01 at the start of every minute except each tenth minute. The picture frames are still present; only the numbering sequence jumps.
- Non-drop timecode preserves continuous frame numbering.
- Drop-frame timecode preserves alignment with real clock time.
- The common separator is a semicolon, such as 01:00:00;00.
How to calculate
For 29.97 drop-frame, the counting rule is 30 nominal labels per second, with 2 labels dropped in 9 out of every 10 minutes. A 10-minute block therefore contains 17,982 actual frames: 10 x 60 x 30 = 18,000 nominal labels minus 18 dropped labels.
A one-hour example shows the point. Six 10-minute blocks contain 6 x 17,982 = 107,892 frames, which equals 3,600 seconds at 29.97 fps. The drop-frame label 01:00:00;00 lands on real one-hour elapsed time.
Converting timecode to frames
A practical conversion counts nominal 30 fps labels, then subtracts the dropped labels that would have occurred before the requested timecode. The skipped labels occur at minute boundaries where the minute is not divisible by 10.
For example, 00:01:00;02 is the first valid label after the first minute boundary. Nominally it is 1 x 60 x 30 + 2 = 1,802 labels. Two labels, 00 and 01, were skipped at that minute, so the frame index is 1,800.
- Validate that illegal labels such as 00:01:00;00 are not accepted.
- Use zero-based frame indexes consistently in software.
- Keep drop-frame and non-drop values separate in edit notes.
When non-drop is still right
Non-drop timecode is still used when exact frame counting is more important than clock alignment, or when the deliverable requires it. It is common in some camera originals, VFX pulls, animation workflows, and controlled internal references.
The mistake is mixing conventions without noticing. A cue sheet, subtitle file, EDL, or QC report can be off by seconds if one system interprets 29.97 timecode as drop-frame and another interprets it as non-drop.
Who needs it
Editors, assistant editors, broadcast engineers, subtitle vendors, media asset managers, and QC teams all need dependable timecode conversion. It matters whenever deliverables, ad breaks, captions, legal logs, or segment timings are tied to real runtime.
The safest workflow is to document frame rate, drop-frame status, starting timecode, and whether frame counts are zero-based. Those four details prevent most handoff errors.
Frequently asked questions
Does drop-frame timecode remove video frames?
No. Drop-frame skips timecode labels, not media frames. The video plays every frame that was recorded or rendered.
Which labels are skipped at 29.97 drop-frame?
Frame labels 00 and 01 are skipped at the start of every minute except minutes divisible by 10.
Why is 01:00:00;00 equal to 107,892 frames?
At 29.97 fps, one real hour contains 107,892 frames. Drop-frame numbering is designed so the one-hour label lands there.
Can 23.976 video use drop-frame timecode?
Traditional SMPTE drop-frame behavior is associated with 29.97 and related 59.94 workflows. For 23.976, confirm the specific facility or delivery specification.