Skip to content
Varlig Guide
Varlig home

Video timecodes and frames

This page covers video timecodes in the HH:MM:SS:FF form used by editing software: working out clip lengths, adding frames, and converting between timecodes, frame counts and seconds. Reach for it when you log shots, plan an edit to a fixed running time, or check how many frames an animation needs.

For ordinary clock times and durations, see Clock times and durations.

Timecodes and frame rates

A timecode has four fields: hours, minutes, seconds and frames. Give its frame rate with @ or at, then convert it to frames or seconds with in.

calc
00:12:04:10 @ 25 fps gives 00:12:04:10
00:12:04:10 at 25 fps in frames gives 18,110 frames
00:12:04:10 @ 25 fps in seconds gives 724.4 s
00:00:10:00 in frames gives 240 frames

Without a frame rate, a timecode is read at 24 fps, which is why the last line gives 240 frames. The space in 25 fps is optional.

If the frames field is larger than the rate allows, the extra frames carry into the seconds:

calc
00:00:10:30 @ 25 fps gives 00:00:11:05

Clip lengths

Subtract one timecode from another to get the length of a clip, or count the frames between them.

calc
clip start = 00:12:04:10 @ 25 fps
clip end = 00:12:31:05 @ 25 fps
clip end - clip start gives 00:00:26:20
clip end - clip start in seconds gives 26.8 s
frames between clip start and clip end gives 670 frames

Choose names that don’t contain the word in on its own, such as in point. in starts a conversion, so a line like out point - in point isn’t read the way you mean. Names like clip start and clip end avoid the problem.

Adding frames and seconds

Add or subtract frames, seconds or whole timecodes. Multiply or divide to repeat or split a length.

calc
cut = 00:01:14:23 @ 24 fps
cut + 2 frames gives 00:01:15:01
cut - 1 frame gives 00:01:14:22
cut + 5 seconds gives 00:01:19:23
00:00:09:00 @ 25 fps + 00:00:04:12 @ 25 fps gives 00:00:13:12
00:01:30:00 @ 25 fps * 3 gives 00:04:30:00
00:00:05:00 @ 25 fps / 2 gives 00:00:02:13
  • Answers are whole frames. Halving 5 seconds at 25 fps gives 62.5 frames, which is rounded to 63, so the answer is 00:00:02:13.
  • Timecodes stop at zero. Subtracting more than the timecode holds gives 00:00:00:00 rather than a negative timecode.
  • Keep one frame rate. Only add timecodes that share a frame rate; to move to another rate, see Changing frame rate.

Frames, seconds and timecodes

A frame count or an ordinary duration turns into a timecode when you give it a frame rate. Add in frames to count the frames in a duration instead.

calc
750 frames @ 25 fps gives 00:00:30:00
86 frames at 25 fps gives 00:00:03:11
2 minutes at 25 fps gives 00:02:00:00
3 seconds 10 frames @ 25 fps gives 00:00:03:10
12 frames @ 25 fps in seconds gives 0.48 s
30 seconds at 25 fps in frames gives 750 frames
90 minutes @ 25 fps in frames gives 135k frames

Large counts that end in zeros are shortened, so 135,000 frames shows as 135k frames.

29.97 and 23.976 fps

Timecodes here are non-drop-frame. At 29.97 fps the frames field still counts 30 frames to each timecode second, and at 23.976 fps it counts 24. Drop-frame timecodes, written with a semicolon, aren’t supported.

calc
00:00:10:00 @ 29.97 fps in frames gives 300 frames
100 frames at 29.97 fps gives 00:00:03:10
00:00:01:00 @ 29.97 fps in seconds gives 1.001001001 s
00:00:01:00 @ 23.976 fps in seconds gives 1.001001001 s

Because these rates are slightly slower than their labels, a timecode second lasts a little over one real second. Converting to seconds gives the real running time, so a programme that ends at 00:21:30:00 at 29.97 fps actually runs for about 1,291 seconds rather than 1,290.

Changing frame rate

To move a length from one frame rate to another, convert it to seconds first, then give the new rate.

calc
(00:00:10:00 @ 25 fps in seconds) at 50 fps in frames gives 500 frames
(00:02:30:00 @ 25 fps in seconds) at 30 fps gives 00:02:30:00

Putting it together

Here is a note for a 30-second advert edited at 25 fps. The three shots have to fit the broadcast slot, and the last lines show how much room is left.

calc
intro = 00:00:04:12 @ 25 fps
interview = 00:00:18:20 @ 25 fps
end card = 00:00:05:00 @ 25 fps
edit = intro + interview + end card gives 00:00:28:07
slot = 00:00:30:00 @ 25 fps
slot - edit gives 00:00:01:18
slot - edit in frames gives 43 frames

Every timecode carries the same rate, so the total adds up frame by frame. With 43 frames spare, you can lengthen the interview or hold the end card a little longer, and the running total updates as you change the shot lengths.