Timecode calculator (SMPTE)

Timecode into frames and clock time, sums and differences between two timecodes and the same point read at another frame rate, with drop frame worked out properly.

Your project frame rate

1. Convert a timecode

Write the timecode any way you like, 01:00:00:00, 1:0:0:0 or digits only, 01000000. Digits are read from the right, so 112 means one second and twelve frames.

2. Add and subtract

For a duration put the end in the first field and the start in the second one, then choose minus.

3. Change frame rate

🔒 Every calculation runs in your browser and no data is sent anywhere.

What a timecode really counts

A timecode HH:MM:SS:FF does not measure time, it numbers frames. The frames field starts at zero and stops one below the frame rate, so at 25 fps the last frame of every second is 24 and 00:00:01:00 is the twenty sixth frame of the piece, not the twenty fifth. The whole arithmetic is frames = ((hours times 3,600 + minutes times 60 + seconds) times fps) + frames. The calculator takes a timecode written any way you like, including the block of digits editors type into an NLE: digits are read from the right, so 1030 means ten seconds and thirty frames and 01000000 means exactly one hour.

Why drop frame exists

Colour NTSC video does not run at 30 frames per second but at 30,000/1,001, that is 29.97. The timecode label keeps counting up to 30 though, so one hour of timecode covers 3,603.6 seconds of clock time and the timecode falls behind by 3.6 seconds every hour, which is unacceptable on a live broadcast. Drop frame fixes the counting, not the video: at the start of every minute it skips the numbers 00 and 01, except in minutes that are multiples of ten, which makes 18 numbers every ten minutes and 108 every hour. No frame is ever cut, only labels disappear. A residual error of 3.6 milliseconds per hour remains, roughly 86 milliseconds a day, which is why drop frame is called accurate but not exact. At 59.94 fps the rule is the same with four numbers skipped instead of two, and at 25 fps drop frame is pointless, because 25 is already a whole number.

The difference between two timecodes and the extra frame

Subtracting the start from the end gives the plain difference, the number of frames between the two instants. If those two timecodes are the first and the last frame of a shot, though, the final frame belongs to the shot and the duration is one frame longer. That is why the tool prints both values side by side. This is where the classic off by one frame error in edit lists and deliveries comes from, so it is always worth asking whether the second timecode is the last good frame or the first excluded one.

Changing frame rate answers two different questions

Moving a timecode from one frame rate to another can mean two opposite things. If you need the same instant, the same moment on the clock, the tool converts clock time and rounds to the nearest frame, telling you how many milliseconds off it landed. If instead you are doing a conform, showing the same frames at a different speed, the count stays the same and the duration changes: one hour shot at 25 fps and played at 24 fps becomes one hour, two minutes and thirty seconds, 4.167% longer. The most common case is going between 24 and 23.976, which stretches everything by 0.1%. In both cases audio must get the same treatment as picture, otherwise lip sync drifts away.

Stated limits

The calculator covers frame rates from 23.976 to 60 and offers drop frame only where the standard defines it, at 29.97 and 59.94. Drop frame at exactly 30 fps, which some software allows, is not here because it would correct a drift that does not exist. A deck rolls its timecode over after 24 hours, while results past 24 hours are printed in full here, with a note showing the value you would actually read. The tool does not open video files and knows nothing about the start timecode written inside your rushes, it only works on the numbers you give it, and everything runs in your browser with nothing sent anywhere.