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
Timecode A, converted
Worked examples
Every value below was produced by this calculator.
- Crossing a minute at 29.97 drop-frame: 00:00:59;29 + 00:00:00;01 =
00:01:00;02, 1,800 frames. Frame numbers ;00 and ;01 are skipped at the minute change, so one frame after ;29 is ;02. Adding two frames instead gives 00:01:00;03. - The tenth minute is not dropped: 00:09:59;29 + 00:00:00;01 =
00:10:00;00, 17,982 frames, which is the exact frame count of every ten-minute block of drop-frame timecode. - Duration between two timecodes: 01:23:45;12 minus 00:58:30;20 at 29.97 drop-frame =
00:25:14;24, 45,398 frames, 25 minutes 14.780 seconds of real time. - Adding a duration: 01:00:00;00 + 00:00:30;00 =
01:00:30;00, 108,792 frames, 1:00:30.026 of real time. - Frames and real time at 23.976: 00:41:40:00 is 60,000 frames and 41:42.500 of real time; 100,000 frames reads
01:09:26:16and lasts 1:09:30.833. One hour of 23.976 timecode is 86,400 frames and 1:00:03.600 real.
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.
Non-drop is frames = ((h x 60 + m) x 60 + s) x fps + ff. Drop-frame subtracts the skipped numbers: 2 x (totalMinutes - floor(totalMinutes / 10)) at 29.97, and 4 per minute at 59.94. That follows SMPTE 12M: frame numbers 00 and 01 are skipped at every minute boundary except minutes ending in zero, 108 numbers an hour, which is why an hour of 29.97 drop-frame is exactly 107,892 frames and stays within a few milliseconds of the wall clock, while non-drop counts 108,000 and runs 3.6 seconds long.
Real elapsed time uses the exact rate, seconds = frames / (30000 / 1001) for 29.97 and frames / (24000 / 1001) for 23.976. The drop-frame timecode guide works through where those fractions come from. To move a timecode to a different rate, use the frame rate converter.
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. Subtitle files carry the same timing; the SRT shifter applies a fixed offset to every cue when a whole file is out of sync.
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. The EDL guide explains what each of those columns means.
FAQ
What is a timecode calculator?
A calculator that does arithmetic on SMPTE timecode (HH:MM:SS:FF) correctly. Timecode is not base 10: seconds and minutes roll over at 60, frames roll over at the frame rate, and drop-frame skips numbers. This one converts each timecode to a frame count, does the math on integers, and formats the answer back.
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.
How do I calculate the duration between two timecodes?
Put the out-point in A and the in-point in B and read the A minus B row. At 29.97 drop-frame, 01:23:45;12 minus 00:58:30;20 is 00:25:14;24, which is 45,398 frames or 25 minutes 14.780 seconds of real time.
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 and so on) so the timecode stays on wall-clock time. No actual video frames are dropped, only numbers on the counter.
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?
86,400 at 24 fps, 90,000 at 25 fps, 108,000 at 30 fps non-drop, 107,892 at 29.97 drop-frame (108,000 minus the 108 skipped numbers), and 215,784 at 59.94 drop-frame. The calculator shows the exact frame count for any timecode.
What is 30000/1001?
The exact value of the frame rate everyone calls 29.97. NTSC video runs at 30 divided by 1.001 frames per second, which is 29.970029 and never exactly 29.97. The same factor makes 23.976 equal 24000/1001 and 59.94 equal 60000/1001. The real elapsed time row uses the exact fraction.
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. One hour of 23.976 timecode is 86,400 frames and 1:00:03.600 of real time, exactly the 3.6 seconds an hour that matters for sync and duration calculations.
How do I convert a frame count to timecode?
Enter any timecode in A and read the frame count and real elapsed time rows. For the reverse direction, the frame rate converter re-labels a frame count at any rate. As a reference, 100,000 frames at 23.976 is 01:09:26:16 and 1:09:30.833 of real time; 60,000 frames is 00:41:40:00 and 41:42.500 real.
Related tools & converters
- Frame rate converterRe-express a timecode at a different frame rate, retime or reinterpret.
- SRT shifterShift every subtitle by a fixed offset to fix a sync delay.
- Drop-frame timecodeWhy 29.97 skips numbers, with the arithmetic worked through.
- EDL to CSVTurn an edit decision list into a spreadsheet with timecodes intact.
- What is an EDL?The CMX3600 edit decision list, decoded, and where these timecodes live.
- SRT to Avid TXTFrame-accurate caption conversion at the rate your timeline needs.