Skip to content
CutConvert

Timecode calculator

Add and subtract SMPTE timecodes, convert between timecode, frame counts, and real elapsed time — with correct drop-frame math at 29.97 and 59.94 fps. Free, instant, and accurate to the frame.

A + B and A − B

A + B01:00:30;00
A − B (duration between)00:59:30;00
A + B in frames108,792
A − B in frames106,992

Timecode A, converted

Frame count107,892
Real elapsed time00:59:59.996
Real seconds3599.996
Same count as 29.97 NDF00:59:56:12

How the math works

Every calculation runs through absolute frame counts. A timecode is parsed to its frame number at the selected rate, the arithmetic happens on integers, and the result is formatted back to timecode. That detour matters in drop-frame, where the counter skips numbers: adding timecodes digit-by-digit produces frame numbers that do not exist, which is how captions and cue sheets end up subtly out of sync.

The drop-frame implementation follows SMPTE 12M: at 29.97 fps, frame numbers 00 and 01 are skipped at every minute boundary except minutes ending in zero; at 59.94, numbers 00–03 are skipped. One hour of 29.97 drop-frame timecode is exactly 107,892 frames and stays within a tenth of a second of the wall clock, while non-drop counts 108,000 and drifts ~3.6 seconds long.

What editors use this for

Duration math for cue sheets and music licensing (out-point minus in-point), summing segment durations for a broadcast rundown, checking whether a deliverable overruns its slot, converting a frame count from a render log back to timecode, and settling the classic confusion between drop and non-drop when a QC report and a timeline disagree by a few seconds an hour.

If the timecodes you are working with live in an EDL, the EDL to CSV converter turns the whole list into a spreadsheet with source and record times as columns — often faster than calculating events one at a time.

FAQ

What is drop-frame timecode?

A counting convention for 29.97 and 59.94 fps video. Because 29.97 fps runs slightly slower than 30, a normal counter drifts ~3.6 seconds behind the clock every hour. Drop-frame skips frame numbers 00 and 01 at every minute change (except minutes 00, 10, 20…) so the timecode stays on wall-clock time. No actual video frames are dropped — only numbers on the counter.

How do I add two timecodes together?

Pick the frame rate, enter both timecodes, and read the A + B row. The calculator converts each timecode to an absolute frame count, adds them, and formats the result back — which is the only correct way to do it in drop-frame, where naive digit math produces illegal frame numbers.

Why does 00:01:00;00 say invalid at 29.97 drop-frame?

Because that frame number does not exist. Drop-frame skips ;00 and ;01 at every minute change except each tenth minute, so the counter jumps from 00:00:59;29 straight to 00:01:00;02. The calculator rejects impossible timecodes instead of silently mis-converting them.

How many frames are in one hour of timecode?

It depends on the rate: 86,400 at 24 fps, 90,000 at 25 fps, 108,000 at 30 fps non-drop, and 107,892 at 29.97 drop-frame (108,000 minus the 108 skipped numbers). The calculator shows the exact frame count for any timecode.

What is the difference between 29.97 non-drop and drop-frame?

Same video, same real frame rate — different counting. Non-drop counts every frame sequentially and drifts from the clock (an hour of NDF timecode is ~3.6 seconds longer than a real hour); drop-frame skips numbers to stay on the clock. Broadcast deliverables usually specify which one they want.

Does this calculator handle 23.976?

Yes. 23.976 counts like 24 fps (there is no drop-frame at 24), but each frame lasts slightly longer in real time — the "real elapsed time" row shows that difference, which is exactly the ~3.6 s/hour drift that matters for sync and duration calculations.