About the Timecode Calculator
This timecode calculator adds and subtracts SMPTE timecode, converts timecode to a frame count and frames back to timecode, and shows the real clock duration for each result. It supports the common editing frame rates — 23.976, 24, 25, 29.97 (drop-frame and non-drop), 30, 50, 59.94 (drop-frame and non-drop) and 60 fps — so you can total up edit decision lists, work out a clip’s duration from its in and out points, or find where frame 107,892 lands.
Editors, assistant editors, colourists, subtitlers and broadcast engineers use it to check durations without opening an NLE. Enter timecode as HH:MM:SS:FF; a semicolon before the frames (HH:MM:SS;FF) is the usual way to mark drop-frame, but either separator is accepted.
Drop-frame timecode does not drop any pictures: it skips frame numbers ;00 and ;01 (;00–;03 at 59.94) at the start of each minute, except every tenth minute, so the displayed time stays within a fraction of a second of the wall clock. Non-drop 29.97 and 23.976 timecode count every frame number and therefore drift about 3.6 seconds behind real time per hour.
How to use the timecode calculator
- 1Choose the project frame rate, including drop-frame or non-drop.
- 2Pick an operation: add, subtract, timecode to frames or frames to timecode.
- 3Type timecode as HH:MM:SS:FF (use ; before the frames for drop-frame if you like).
- 4Read the resulting timecode and its frame count.
- 5Check the real running time to see how long the result lasts on the clock.
Formula and method
Timecode is converted to an absolute frame count, the arithmetic is done in frames, and the answer is converted back. For non-drop timecode the count is simply total seconds × the nominal frame rate (24, 25, 30…) plus the frame field. For drop-frame, D frame numbers (2 at 29.97, 4 at 59.94) are subtracted for every elapsed minute M except multiples of ten, because those labels never exist.
Converting back reverses the process: frames are grouped into ten-minute blocks (17,982 frames at 29.97 DF) and the skipped labels are added back before splitting into hours, minutes, seconds and frames. Real running time divides the frame count by the true frame rate — 30000/1001 for 29.97 and 24000/1001 for 23.976 — which is why non-drop timecode drifts from the clock.
- h, m, s, f
- Hours, minutes, seconds and frames fields of the timecode
- FPSnom
- Nominal timecode rate (24, 25, 30, 50 or 60)
- FPSactual
- True playback rate (e.g. 30000/1001 ≈ 29.97)
- D
- Frame numbers dropped per minute (0, 2 for 29.97 DF, 4 for 59.94 DF)
- M
- Total elapsed minutes (60h + m)
Worked examples
Add two 24 fps timecodes
At 24 fps, 01:00:00:00 is 86,400 frames and 00:10:30:12 is 630 × 24 + 12 = 15,132 frames. Their sum is 101,532 frames, which converts back to 01:10:30:12 — exactly 4,230.5 seconds of real time because 24 fps has no drift.
One hour of 29.97 drop-frame in frames
One hour has 60 minutes, 54 of which are not multiples of ten, so 54 × 2 = 108 frame labels are skipped: 108,000 − 108 = 107,892 frames. At 30000/1001 fps that is 3,599.996 seconds — drop-frame keeps an hour of timecode within 4 milliseconds of a real hour.
1,800 frames at 29.97 drop-frame
The first minute holds 1,800 frames (00:00:00;00 to 00:00:59;29). Frame labels ;00 and ;01 of minute one are skipped, so frame 1,800 is displayed as 00:01:00;02. Its real time is 1,800 ÷ 29.97 ≈ 60.06 seconds.
Clip duration at 25 fps
The out point is 67,810 frames and the in point 18,770 frames at 25 fps. The difference, 49,040 frames, is 32 minutes 41 seconds and 15 frames, or 1,961.6 seconds.
Frequently asked questions
What is drop-frame timecode?+
Drop-frame timecode is a counting scheme for 29.97 and 59.94 fps video. It skips frame numbers ;00 and ;01 (or ;00–;03 at 59.94) at the start of every minute except minutes 0, 10, 20, 30, 40 and 50, so the timecode matches clock time. No picture frames are actually discarded.
Why does 29.97 non-drop timecode drift?+
Non-drop timecode labels 30 frames per second, but the video actually plays at 30000/1001 ≈ 29.97 frames per second. Each labelled “second” lasts 1.001 real seconds, so after an hour the timecode reads about 3.6 seconds less than the clock.
How do I convert frames to timecode?+
For non-drop rates divide the frame count by the frame rate: the remainder is the frame field, and the whole seconds split into hours, minutes and seconds. For drop-frame, add back two skipped labels per minute (except every tenth) before splitting — this calculator does that automatically.
What is the difference between 23.976 and 24 fps?+
23.976 fps (24000/1001) is the slowed-down film rate used for NTSC-compatible delivery, while 24 fps is true cinema rate. Both use 24-frame timecode, but 23.976 runs 0.1% slower, so an hour of 23.976 timecode lasts 3,603.6 real seconds.
Why is drop-frame written with a semicolon?+
By convention, drop-frame timecode uses a semicolon (or a period) before the frame field, as in 01:00:00;00, while non-drop uses colons throughout. The separator is only a label — what matters is the counting mode set in your project.