Timecode Calculator
A timecode is a label on a frame, not a length of time, and this page treats it that way: it turns the label into a frame count, does the arithmetic on whole frames, and turns the count back into a label. That is what makes drop-frame come out right. At 29.97 the labels ;00 and ;01 do not exist at the start of any minute except every tenth, so 00:00:59;29 plus one frame is 00:01:00;02 while 00:09:59;29 plus one frame is 00:10:00;00, and ten minutes of labels are 17,982 frames rather than 18,000. The second number the page keeps separate is the one people are usually surprised by: 29.97 is exactly 30000/1001 frames a second, so those 17,982 frames run 599.9994 seconds on a clock, not 600. Both figures are shown at once and each is labelled, with the arithmetic written out underneath in your own numbers. The amount you add or take away can be a frame count or another timecode, the rate list runs 24, 25, 29.97, 30, 50, 59.94 and 60, and a label that drop-frame skips is refused by name instead of being quietly moved to the nearest one that exists.
29.97 drop-frame: the labels ;00 and ;01 are skipped at the start of every minute except every tenth, so an hour of labels is 107,892 frames and runs 3,599.9964 seconds, 0.0036 seconds short of the hour it reads.
Drop-frame has skipped 18 labels between 00:00:00;00 and here, which is why the frame count is 17,982 and not 18,000.
Three cases, worked
Every line below is computed by the code that answers the calculator above, so the examples and the tool can never disagree.
Common questions
- How does drop-frame timecode work?
- It skips labels, never frames. At 29.97 the two labels ;00 and ;01 are left out at the start of every minute except every tenth minute, so the numbers on the counter keep pace with a clock even though 30 labels a second are being spent at 30000/1001 frames a second. Nothing is dropped from the recording: the same frames are there, two of them just never get those names. At 59.94 the rule is the same with four labels, ;00 to ;03.
- Why is 00:10:00;00 frame 17,982 and not 18,000?
- Because nine of the first ten minutes each lost two labels: minutes 1 to 9 drop two apiece, minute 0 and minute 10 keep theirs, so 18 labels are gone by the time the counter reads ten minutes. 18,000 minus 18 is 17,982. The page prints that count under the answer as soon as drop-frame has skipped anything, and an hour works the same way: 54 minutes in the hour drop two labels each, so 108,000 becomes 107,892 frames.
- What is the difference between the frame count and the real time?
- The frame count is how many frames have gone by. The real time is how long they take on a clock, and at 29.97 that is the frame count times 1001/30000. The 17,982 frames of 00:10:00;00 run 599.9994 seconds, 0.0006 short of ten minutes; an hour of drop-frame labels is 107,892 frames and 3,599.9964 seconds, 0.0036 short; a whole day of them falls 0.0864 seconds behind. Non-drop 29.97 goes the other way: 01:00:00:00 is 108,000 frames and 3,603.6 seconds, so the counter is 3.6 seconds behind the clock after an hour. The page shows the frame count and the elapsed seconds in their own cells so the two are never read as one figure.
- Does the semicolon actually mean anything?
- Yes. A semicolon before the frames is the convention for drop-frame and a colon is non-drop, so this page refuses a semicolon while it is counting non-drop, and says which control to change. A colon is accepted either way, because it is what most people type: the Counting control decides how the label is read, and the answer comes back with the separator that matches.
- How do I add or subtract two timecodes?
- Type the first timecode, press Plus or Minus, and put the second one in the Amount field. The amount can also be a plain number of frames: 1 is one frame, and 1,798 is how many frames a drop-frame minute holds at 29.97, since the minutes that keep their two labels hold 1,800. Leave the amount empty and the page just reads the timecode out as a frame count and an elapsed time, which is how 01:00:00:00 at 24 fps comes back as 86,400 frames.
- What happens if the answer goes below zero?
- It is printed with a minus in front. At 24 fps, 00:00:01:00 minus 00:00:02:00 gives -00:00:01:00, a frame count of -24 and a negative elapsed time to match. A minus sign typed into either field is refused, because in a field it is a slip far more often than a plan: put the larger timecode first, or press Minus and let the answer carry the sign.
- Why does it refuse 00:01:00;00?
- Because at 29.97 drop-frame that label does not exist. No recorder ever writes it, so a calculator that accepts it is answering a question about a frame that is not there. The page says so and names the next label that does exist, 00:01:00;02. Switch Counting to Non-drop and write it with a colon, 00:01:00:00, and it is accepted, because in non-drop every label exists.
- How many frames are in an hour, and in a day?
- It depends on the rate and on the counting. An hour is 86,400 frames at 24 fps, 108,000 at 30 or at 29.97 non-drop, and 107,892 at 29.97 drop-frame. A full 24 hours of drop-frame labels is 2,589,408 frames, which is 2,592 labels short of the 2,592,000 a non-drop day would count. Type the timecode with the amount left empty and the page reads any of these out for you.
- Can it do 23.976 or 48 fps?
- Not on this page: the list is 24, 25, 29.97, 30, 50, 59.94 and 60. For 23.976 the frame arithmetic is identical to 24, because the labels are the same and there is no drop-frame variant in normal use; only the elapsed seconds differ, by the same factor of 1.001 that turns an hour of 29.97 non-drop labels into 3,603.6 seconds. So the timecode answers are right at 23.976, and the seconds figure is the one to ignore.
- Is the difference between two timecodes the length of the shot?
- It is the number of frames between them, which is one less than the number of frames from the first to the second inclusive. If you want the length of a shot that includes both its first and its last frame, add one frame to the answer.
- Is anything I type sent anywhere?
- No. The arithmetic runs in this browser and nothing is uploaded. The last timecode, rate and counting mode are remembered locally so the page opens where you left it, and if storage is blocked or full the calculator still works, it simply forgets.
Exact integer frame arithmetic. Drop-frame skips the labels ;00 and ;01 at the start of every minute except every tenth, which is why 00:10:00;00 is frame 17,982 and not 18,000. Real elapsed time is kept as a separate number, because at 30000/1001 frames a second those 17,982 frames run 599.9994 seconds, not 600.