Skip to content

Time and precision

Last updated

If a footage or a composition is 29.97 frames per second, then one frame is exactly 1001/30000 of a second long, which is equivalent to a non-terminating decimal value. If we attempt to store this as a float value then we won’t store the length of a frame perfectly, and in longer compositions, the footage will begin to drift apart from the frame it should actually be displaying at a specific timecode.

To resolve this we instead store the length of time to display a frame as the exact fraction, as demonstrated above. This requires two integer values, the numerator and denominator. As per the example above, we can now store the frame time for a 29.97 fps composition exactly, where numerator = 1001, and denominator = 30000. For simpler frame rates, such as 60 fps, this can be calculated as 1/60.

“Time” itself can refer to several different parts of a project, which is why internally they are separated into the following:

Time typeMeasured from
Source timeThe start of the decoded media file.
Clip timeThe start of an individual clip, inside a Sequence layer.
Layer timeThe start of a layer within a composition.
Comp timeThe start of the composition.