Convert between video frame numbers and SMPTE timecode (HH:MM:SS:FF). Supports 24, 25, 29.97 drop-frame, 30, and 60 fps standards.
SMPTE timecode is the universal time-addressing system for film, television, and video production. Displayed as HH:MM:SS:FF (hours, minutes, seconds, frames), it allows precise identification of every frame in a video sequence. Converting between raw frame numbers and timecode is a daily task for editors, colorists, VFX artists, and broadcast engineers.
Our Frames to Timecode Calculator handles all major frame rates including the tricky 29.97 fps drop-frame format used in NTSC broadcast. Enter a frame number to get the equivalent timecode, or enter a timecode to get the frame number. The tool also converts between different frame rates, calculates duration between two timecodes, and shows how drop-frame compensation works.
Understanding timecode is critical for anyone working in video production. The 29.97 fps drop-frame format in particular confuses many editors — it skips frame numbers (not actual frames) at specific intervals to keep timecode synchronized with real-time wall clocks. This calculator demystifies that process and provides accurate conversions for all common broadcast and cinema frame rates.
Accurate timecode conversions are essential for video editing, broadcast compliance, and post-production workflows. Stop manually counting frames and let the calculator handle drop-frame math. Keep these notes focused on your operational context. Tie the context to the calculator’s intended domain. Use this clarification to avoid ambiguous interpretation. Align this note with review checkpoints.
Non-Drop: Frame = H×3600×fps + M×60×fps + S×fps + F Drop-Frame (29.97): Skip frames 0,1 at each minute except every 10th Drop count = 2 × (totalMinutes - floor(totalMinutes/10)) Real time = frames / actual_fps (e.g., 29.97)
Result: 01:00:03;18
At 29.97 fps drop-frame, frame 108000 equals 01:00:03;18. The 3-second and 18-frame offset from 01:00:00;00 is due to drop-frame compensation — the timecode skips ahead to stay synchronized with wall-clock time.
SMPTE timecode was standardized in 1967 to provide a universal frame-addressing system for film and television. Before timecode, editors had to physically count frames or use approximate time references. Modern timecode is embedded in video files, broadcast signals, and production metadata, enabling frame-accurate editing, synchronization, and automation.
The format HH:MM:SS:FF allows addressing up to 24 hours of content (00:00:00:00 to 23:59:59:xx, where xx depends on frame rate). Each value rolls over at its natural boundary: frames roll at the frame rate, seconds at 60, minutes at 60, hours at 24. This creates a direct, human-readable time reference that maps precisely to individual video frames.
When NTSC television adopted color in 1953, the frame rate changed from exactly 30 fps to 29.97 fps (technically 30000/1001). This meant that a timecode counter running at 30 fps would drift ahead of real time — showing 01:00:00:00 when only 59 minutes and 56.4 seconds had actually elapsed. Over a broadcast day, this caused significant scheduling problems.
Drop-frame timecode solves this by periodically skipping frame numbers (not actual frames). Specifically, frame numbers 0 and 1 are skipped at the start of each minute, except minutes 0, 10, 20, 30, 40, and 50. This compensates for the 0.1% speed difference, keeping timecode within approximately 2 frames of real time over 24 hours. The algorithm is elegant: drop 2 frames per minute (120/hour) except at 10-minute boundaries, yielding a net drop of 108 frames per hour — almost exactly the 108.108... frame shortfall per hour at 29.97 fps.
Different regions and applications use different frame rates. Cinema has used 24 fps since the 1920s. PAL television (Europe, most of Asia, Africa) uses 25 fps. NTSC (Americas, Japan, South Korea) uses 29.97 fps. Modern digital cinema commonly uses 23.976 fps for film content delivered in NTSC workflows. High-frame-rate content uses 48, 50, 59.94, or 60 fps. Streaming platforms support virtually any frame rate, but most content is delivered at 23.976, 25, or 29.97 for compatibility with existing broadcast infrastructure.
SMPTE (Society of Motion Picture and Television Engineers) timecode is a standardized time-addressing system. It uniquely identifies each frame using HH:MM:SS:FF format. It's essential for synchronization, editing, and broadcast compliance.
Drop-frame timecode (DF) compensates for NTSC's 29.97 fps by skipping frame numbers 0 and 1 at the start of each minute, except every 10th minute. This keeps timecode aligned with real time. No actual frames are dropped — only the numbers are skipped.
Use drop-frame (DF) when accurate real-time duration matters, like broadcast TV. Use non-drop (NDF) when frame counting accuracy matters, like film and some post-production workflows. DF timecode drifts less than 1 frame from wall-clock time over 24 hours.
When color was added to NTSC television in 1953, the frame rate was slowed by 0.1% (from 30 to 29.97) to prevent interference between the color subcarrier and audio frequencies. This tiny offset created the need for drop-frame timecode.
Traditional film runs at 24 fps. Digital cinema uses 23.976 (23.98), 24, 25, or 48 fps. European broadcast (PAL) uses 25 fps. US broadcast (NTSC) uses 29.97 fps. Modern streaming can use any frame rate.
A colon (:) between seconds and frames indicates non-drop-frame timecode. A semicolon (;) indicates drop-frame timecode. So 01:00:00:00 is NDF and 01:00:00;00 is DF.