Timecode Duration Calculator
Calculate frame-accurate timecode spans with drop-frame validation and endpoint rules, then add 24-hour wrap or pull handles when needed.{{ summaryTitle }}
{{ summarySubtitle }}
{{ copyPrimaryDone ? 'Duration copied.' : '' }}
| Metric | Value | Detail | Copy |
|---|---|---|---|
| {{ row.metric }} | {{ row.value }} | {{ row.detail }} |
| Check | Status | Action | Reason | Copy |
|---|---|---|---|---|
| {{ row.check }} | {{ row.status }} | {{ row.action }} | {{ row.reason }} |
Editing decisions are made on frame boundaries, so two matching-looking clock labels can still describe different spans. A timecode address has four fields—hours, minutes, seconds, and frames—but its meaning depends on the frame-rate profile, whether drop-frame counting is active, and whether the final label belongs to the selection.
Non-drop-frame (NDF) counting assigns every nominal frame label in sequence. At fractional NTSC-derived rates such as 29.97 frames per second, those labels drift away from elapsed clock time. Drop-frame (DF) timecode compensates by skipping label numbers at prescribed minute boundaries. No video frames are discarded; only some addresses are unused.
| Decision | Why it changes the answer |
|---|---|
| Frame-rate profile | Sets the valid frame field, real seconds per frame, and any skipped-label rule. |
| Exclusive or inclusive end | An inclusive final label adds one frame to a non-negative span. |
| End before start | May be an entry-order problem or an intentional wrap across a 24-hour boundary. |
| Handle frames | Adds equal head and tail material to a pull without changing the selected editorial span. |
Exclusive out points are common on editing timelines: the out label names the first frame after the selection. Pull lists sometimes name the last included frame instead. Confusing those conventions creates a one-frame disagreement even when the labels and frame rate are otherwise correct.
Handles solve a different handoff problem. Visual-effects, sound, color, review, and archive workflows may need extra frames before and after the chosen range. They enlarge the requested pull, but they do not redefine the original in-to-out duration.
Timecode identifies positions within a chosen counting system; it does not prove that two files share the same edit rate, starting offset, reel, or media. Confirm the source sequence settings before treating a calculated span as an editorial handoff.
How to Use This Tool:
Match the timeline profile and endpoint convention first; those choices determine how both labels become frame indexes.
- Select the Frame rate used by the source sequence. Choose Custom NDF only for a non-drop rate from 1 through 240 frames per second.
- Enter Start timecode and End timecode as
HH:MM:SS:FF,HH:MM:SS;FF, or eight digits. Correct any invalid frame field or skipped DF label before continuing. - Choose Out point exclusive when the end label is the first frame outside the selection. Choose Include end frame when it is the final selected frame.
- Keep End before start on Flag as review unless the range intentionally crosses a 24-hour boundary. Add handle frames per side only when the recipient requests them.
- Check Duration frames, Runtime, and the editorial warnings together. The frame count is the best audit value; runtime uses the profile's real playback rate.
Interpreting Results:
- Duration frames is the signed selected span after the endpoint convention is applied.
- Runtime converts that count with the real frame rate, so 29.97 and 30 NDF do not have identical elapsed seconds.
- Pull frames never goes below zero and adds twice the handle count to a non-negative duration.
- A separator warning does not by itself change the count, but a skipped DF label is invalid and must be corrected.
- A negative duration under Flag as review should be verified before handoff; wrapping it is correct only when a 24-hour rollover is intended.
Technical Details:
Timecode arithmetic becomes reliable once each address is mapped to an absolute frame index. Nominal frames per second controls label syntax, while real frames per second controls elapsed runtime. For example, 29.97 DF uses a nominal base of 30 but a real rate of 30,000/1,001 frames per second.
Transformation Core
Each input follows one ordered path: normalize the label, validate its fields against the profile, subtract any scheduled DF labels, and produce a frame index. The two indexes then pass through the wrap and endpoint rules before runtime and handles are derived.
- Eight digits become four two-digit fields; a period before frames becomes a semicolon.
- Minutes and seconds must be 00 through 59. The frame field must be smaller than the nominal frame base.
- At 29.97 DF, labels
;00and;01are skipped at the start of every minute except each tenth minute. At 59.94 DF,;00through;03are skipped under the same exception. - If 24-hour wrap is selected, complete profile-specific days are added until the end index is no earlier than the start index.
Formula Core
For NDF timecode, the frame index uses the nominal base N:
DF counting subtracts d skipped labels for every completed minute except each tenth minute. With M = 60h + m:
The selected duration and elapsed runtime then follow directly:
I is 1 only for an inclusive, non-negative span. At 24 NDF, identical start and end labels therefore produce 0 frames when exclusive and 1 frame, or 1/24 second, when inclusive.
| Profile family | Nominal base | Real rate | Counting rule |
|---|---|---|---|
| 23.976 NDF | 24 | 24,000/1,001 | All nominal labels retained |
| 29.97 DF / NDF | 30 | 30,000/1,001 | DF skips 2 labels at most minute starts; NDF skips none |
| 59.94 DF / NDF | 60 | 60,000/1,001 | DF skips 4 labels at most minute starts; NDF skips none |
| 24, 25, 30, 50, 60 NDF | Same as rate | Same as rate | All labels retained |
| Custom NDF | Rounded rate | Entered rate | 1 through 240 frames per second; no dropped labels |
Accuracy Notes:
The calculation treats timecode as a continuous frame-address sequence. It does not inspect media, detect variable frame rate, reconcile reel changes, or verify that an NLE interprets a forced colon or semicolon the same way. Confirm the timeline's edit rate and endpoint convention in the originating system.
References:
- SMPTE ST 12-1:2014 Time and Control Code, Society of Motion Picture and Television Engineers, 2014.