Calciro

How Timecode Works: SMPTE Format, Frame Rates, and Video Timecode Calculation

Understand SMPTE timecode — how HH:MM:SS:FF format works, how different frame rates (23.976, 29.97, 25) affect timecode, drop frame vs. non-drop frame, and how to calculate timecode from frame count.

Related Calculators

What Is SMPTE Timecode?

SMPTE timecode (Society of Motion Picture and Television Engineers) is the standard addressing system for video and audio in professional production. It assigns a unique address to every video frame.

Format: HH:MM:SS:FF - HH = Hours (00–23) - MM = Minutes (00–59) - SS = Seconds (00–59) - FF = Frames (00 to frame_rate−1)

Example: 01:23:45:12 at 25fps = 1 hour, 23 minutes, 45 seconds, frame 12

Frame Rate Standards

Frame RateRegion/UseNotation
23.976 fpsFilm, streaming (NTSC countries)23.97 or 23.98
24 fpsFilm (true cinema)24
25 fpsBroadcast (PAL/SECAM)25
29.97 fpsNTSC broadcast (US, Japan)29.97 or 30DF
30 fpsNon-drop NTSC, internet video30NDF
50 fpsPAL high-frame rate50
59.94 fpsNTSC high-frame rate59.94
60 fpsHigh frame rate60

Calculating Total Frame Count from Timecode

For integer frame rates (24, 25, 30): Total Frames = (HH × 3600 + MM × 60 + SS) × Frame Rate + FF

Example: 01:23:45:12 at 25fps = (3600 + 23×60 + 45) × 25 + 12 = (3600 + 1380 + 45) × 25 + 12 = 5,025 × 25 + 12 = 125,625 + 12 = 125,637 frames

Drop Frame vs. Non-Drop Frame

The problem: 29.97 fps is not exactly 30 fps. If you count 30 frames per second of timecode for 29.97fps video, timecode drifts away from real-world time by ~3.6 seconds per hour.

Drop frame solution: Skip frame numbers (not actual frames) at the start of each minute, except every 10th minute.

Drop frame rule: - Skip frame numbers :00 and :01 at the start of every minute - Except do NOT skip at minutes :00, :10, :20, :30, :40, :50

Example: In non-drop, sequence goes: 00:00:59:29 → 00:01:00:00 In drop frame: 00:00:59:29 → 00:01:00:02 (frames 00 and 01 are "skipped")

This keeps timecode synchronized with real-world time to within 2 frames per 24 hours.

When to use drop frame: Any NTSC (29.97fps or 59.94fps) broadcast production When to use non-drop: Film (23.976, 24), PAL (25), internet distribution where exact frame counts matter more than real-time sync

Timecode Arithmetic

Adding timecodes: 01:23:45:12 + 00:15:30:10 at 25fps: - Frames: 12 + 10 = 22 (< 25, no carry) - Seconds: 45 + 30 = 75 → 75 − 60 = 15, carry 1 minute - Minutes: 23 + 15 + 1 = 39 - Hours: 01 + 00 = 01 = 01:39:15:22

Converting to real duration (non-drop, 25fps): Duration (seconds) = HH×3600 + MM×60 + SS + FF/25

01:39:15:22 = 3600 + 2340 + 15 + 0.88 = 5,955.88 seconds = 99 min 15.88 sec

Frequently Asked Questions

What does timecode HH:MM:SS:FF mean?
Timecode format is Hours:Minutes:Seconds:Frames. Each frame number goes from 00 to (frame rate − 1) before rolling over to 00 and incrementing seconds. At 25fps, frames run 00–24. At 29.97 NDF, frames run 00–29. Example: 01:30:00:12 at 24fps = 1 hour, 30 minutes, 0 seconds, 12th frame.
What is drop frame timecode and when should I use it?
Drop frame timecode skips frame numbers :00 and :01 at the start of every minute (except every 10th minute) to keep 29.97fps timecode synchronized with real-world time. Without it, 29.97fps timecode drifts ~3.6 seconds per hour from actual clock time. Use drop frame for all NTSC broadcast (US/Japan) at 29.97 or 59.94fps. Use non-drop for film, PAL, or when frame-accurate counting matters more than time sync.
How do I convert timecode to total frame count?
Total frames = (Hours × 3600 + Minutes × 60 + Seconds) × Frame Rate + Frames. For 23.97fps use 24 as the frame rate in this calculation, then apply drop-frame correction if applicable. Example: 00:02:30:15 at 24fps = (150 + 15 seconds) × 24 + 15... actually: (2×60 + 30) × 24 + 15 = 150 × 24 + 15 = 3,600 + 15 = 3,615 total frames.
Why is 29.97 fps used instead of exactly 30 fps?
29.97 fps (technically 30,000/1001 fps) dates to the introduction of color television in the US in the 1950s. Adding color subcarrier frequency to the NTSC signal required reducing the frame rate from 30 to 29.97 to prevent interference. This became the standard for all NTSC broadcast. Modern digital systems can use true 30fps, but 29.97 remains standard for compatibility with existing broadcast infrastructure.

Last updated 7/28/2026