SMPTE timecode labels every frame of video as HH:MM:SS:FF, and a timecode decoder converts between that label, an absolute frame count and real elapsed time for a given frame rate.
Example
01:23:45:121h 23m 45s + 12 frames
Total frames: 125637
Seconds: 5025.480
Frame rate: 25 fpsWhat is the SMPTE Timecode Decoder?
Timecode is how film and broadcast address a specific frame. The format is hours:minutes:seconds:frames, where the frames field counts from zero up to one less than the frame rate. At 25 fps, 00:01:00:12 is the thirteenth frame of the second minute — frame 1512 overall.
The complication is 29.97 fps. NTSC colour television runs at 30/1.001 frames per second, so a counter labelled '30 fps' drifts against the clock by about 3.6 seconds per hour. Drop-frame timecode compensates by skipping the labels :00 and :01 in the frames field at the start of every minute except every tenth — no frames are lost, only their names. Non-drop timecode keeps sequential labels and accepts the drift.
Getting this wrong is a classic post-production error: a delivery timed against non-drop timecode arrives seconds long against a broadcast slot measured in real time.
How to use the SMPTE Timecode Decoder
- Choose the frame rate your project runs at.
- Enter a timecode to get the frame count, or a frame count to get the timecode.
- Note whether your workflow is drop-frame — the semicolon separator marks it.
When to use it
- Converting an edit-decision-list timecode into an absolute frame number.
- Checking programme duration against a broadcast slot in real seconds.
- Reconciling drop-frame and non-drop timecode between two facilities.
SMPTE Timecode Decoder at a glance
| Format | HH:MM:SS:FF (semicolon before frames = drop-frame) |
| Common rates | 23.976, 24, 25, 29.97, 30, 50, 59.94 |
| Drop-frame | Skips 2 frame labels per minute, except every 10th |
| Drift avoided | ≈3.6 seconds per hour at 29.97 fps |
Frequently asked questions
What is drop-frame timecode?
A labelling scheme for 29.97 fps that skips two frame numbers at the start of most minutes so timecode stays aligned with real clock time. No picture frames are dropped — only their labels.
Why is NTSC 29.97 and not 30 fps?
When colour was added to NTSC, the frame rate was reduced by a factor of 1.001 to keep the colour subcarrier from interfering with the audio carrier. Every timecode headache since descends from that decision.
How do I tell drop-frame from non-drop?
By the separator: a semicolon or period before the frames field (00:01:00;02) means drop-frame; a colon throughout means non-drop.
Last reviewed · found a mistake? contact@decoder.tools · view as markdown