SMPTE Timecode Decoder
Decode SMPTE-style timecode into hours, minutes, seconds and frames, calculate the absolute frame number, detect drop-frame notation, estimate elapsed time and inspect frame-rate details.
—
—
—
What Is SMPTE Timecode?
SMPTE timecode is a frame-based time labeling system used in film, television, broadcast, audio and video production. A common representation contains hours, minutes, seconds and frame numbers.
HH:MM:SS:FF
Example:
01:23:45:12
01 = Hours
23 = Minutes
45 = Seconds
12 = FramesSMPTE Timecode to Frame Number
For non-drop timecode, the conversion uses the nominal integer frame rate.
Total Frames =
Hours × 3600 × FPS
+
Minutes × 60 × FPS
+
Seconds × FPS
+
FramesExample at 24 fps
Timecode:
00:01:00:00
Frame Rate:
24 fps
Total Frames:
0 × 3600 × 24
+
1 × 60 × 24
= 1440 framesWhat Is Drop-Frame Timecode?
Drop-frame timecode is used with fractional NTSC-related rates such as 29.97 fps and 59.94 fps. The purpose is to reduce the difference between timecode labels and elapsed clock time.
No actual video frames are discarded. Instead, certain frame numbers are omitted from the timecode count.
29.97 Drop-Frame Rule
At 29.97 fps drop-frame timecode, frame numbers 00 and 01 are skipped at the start of each minute except every tenth minute.
Skipped at:
00:01:00;00
00:01:00;01
00:02:00;00
00:02:00;01
...
But not at:
00:10:00;0059.94 Drop-Frame Rule
At 59.94 fps, four frame numbers are skipped at the start of applicable minutes rather than two.
Skipped numbers:
00
01
02
03
at each minute except every tenth minute.Drop-Frame Formula
Nominal Frames =
((Hours × 3600)
+ (Minutes × 60)
+ Seconds)
× Nominal FPS
+ Frames
Dropped Frame Numbers =
Drop Count
×
(Total Minutes − floor(Total Minutes / 10))
Actual Frame Number =
Nominal Frames − Dropped Frame Numbers29.97 fps vs 30 fps
| Rate | Actual FPS | Nominal Count | Drop-Frame Possible |
|---|---|---|---|
| 29.97 | 30000/1001 | 30 | Yes |
| 30 | 30 | 30 | No |
| 59.94 | 60000/1001 | 60 | Yes |
| 60 | 60 | 60 | No |
Colon vs Semicolon Timecode
A colon is commonly used to display non-drop frame timecode, while a semicolon before the frame field is commonly used to identify drop-frame timecode.
Non-Drop:
01:00:00:00
Drop-Frame:
01:00:00;00Timecode Frame Range
The frame field must remain below the nominal integer frame count for the selected frame rate.
24 fps:
Frames 00–23
25 fps:
Frames 00–24
29.97 / 30 fps:
Frames 00–29
50 fps:
Frames 00–49
59.94 / 60 fps:
Frames 00–59