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
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