Timecode Duration Calculator
Calculate timecode duration from start and end labels with drop-frame checks, inclusive or exclusive endpoints, handle frames, and handoff-ready outputs.| Metric | Value | Detail | Copy |
|---|---|---|---|
| {{ row.metric }} | {{ row.value }} | {{ row.detail }} |
| Check | Status | Action | Reason | Copy |
|---|---|---|---|---|
| {{ row.check }} | {{ row.status }} | {{ row.action }} | {{ row.reason }} |
{{ result.copySheet }}
Timecode turns a moving-picture timeline into frame addresses. A label such as 01:00:00;00 looks like a clock reading, but it is really a formatted position in a sequence. The hour, minute, second, and frame fields only become meaningful after the frame-rate profile and counting convention are known.
That distinction matters in editing, finishing, captioning, archive pulls, visual effects turnovers, and broadcast timing. A producer may ask for the duration of a segment, an assistant editor may build a pull list, or a caption vendor may need the exact run time between two labels. In each case, the useful answer is not just elapsed wall time. The answer also needs the selected frame count, the next out point, and any extra handle frames that downstream teams expect.
Drop-frame timecode is the part that most often causes confusion. NTSC-derived rates such as 29.97 and 59.94 run slightly slower than exact 30 or 60 frames per second. Drop-frame labeling skips selected timecode numbers so the displayed time stays close to real elapsed time over long programs. It does not remove picture frames. Non-drop-frame labeling keeps every nominal label, which is easier to count but drifts against clock time at those fractional rates.
Endpoint rules create another one-frame trap. In many nonlinear editors, an out point is exclusive: the end label marks the first frame after the selected range. Some pull lists, shot notes, and spreadsheets use an inclusive end label, where the last entered frame is part of the range. The same pair of labels can therefore produce results that differ by one frame even when both people are using the same frame rate.
- Timecode label
- A timeline address written as hours, minutes, seconds, and frame number.
- Frame-rate profile
- The nominal frame labels per second, real playback rate, separator convention, and drop-frame rule.
- Out point
- A boundary label that often marks the first frame after the selected span.
- Handle frames
- Extra head and tail frames added around the raw selection for downstream work.
Valid duration work starts by keeping three questions separate. Which frame-rate profile owns the labels? Is the end label an exclusive out point or the last included frame? Are handle frames part of the requested pull, or only part of a downstream export? Answering those questions before subtracting labels prevents the common mistakes that make two timing sheets disagree by one frame, several skipped labels, or a few tenths of a second over a long program.
How to Use This Tool:
Start by matching the source timeline, then enter the labels and convention that describe the range you need to hand off.
- Choose the Frame rate profile that matches the sequence, edit decision list, caption file, or delivery sheet. Use the named 29.97 DF or 59.94 DF presets only when the source is truly drop-frame.
- Enter Start timecode and End timecode exactly as supplied. Standard colon labels, semicolon labels, and pasted eight-digit values such as 01000000 are accepted when the frame field is valid for the selected profile.
- Set Duration convention to Out point exclusive for timeline in/out ranges, or Include end frame when the entered end label is the last visible frame in a pull list.
- Use End before start as Flag as review unless the range intentionally crosses a 24-hour boundary. Choose Wrap past 24h only for overnight, time-of-day, or reel/day-wrap cases.
- Add Handle frames each side when VFX, sound, color, review, or archive teams need extra head and tail frames. Leave it at zero when the raw selected duration is the only answer needed.
- Open Advanced only when a downstream sheet requires a forced colon or semicolon display, or when a scenario label should appear in copied text and exported results.
- Use the Duration Ledger and Editorial Checks tabs as the readiness check. A valid parse, usable start/end order, and expected endpoint convention should be in place before copying the summary or copy sheet.
Interpreting Results:
The main duration value is a frame count formatted back into the selected timecode profile. Read it alongside Duration frames and Runtime, because those values answer different questions. The timecode display is useful for editorial handoff, the frame count is the audit value, and runtime seconds are the elapsed playback length at the real frame rate.
- Duration Ledger shows the frame-rate profile, absolute start and end frame indexes, selected duration, last included frame, next out point, and pull range with handles.
- Editorial Checks flags invalid label format, frame fields outside the profile, skipped drop-frame labels, start/end order problems, endpoint convention, and handle use.
- Frame Budget Chart separates head handle, raw duration, and tail handle so long pulls and short handles do not get merged into one unexplained number.
A clean result does not prove that the media file, reel metadata, or edit list is correct. It only proves that the entered labels are valid under the selected profile and convention. If a nonlinear editor disagrees, check drop-frame versus non-drop-frame first, then check whether the editor is showing an exclusive out point or an included end frame.
Technical Details:
A timecode duration is computed by converting each label to a zero-based frame address, subtracting the start address from the end address, then applying the endpoint rule. The formatted label is not subtracted as a clock string. It first has to pass profile validation for minutes, seconds, frame-field width, separator convention, and any drop-frame skip rule.
Non-drop-frame profiles use the nominal frame count per labeled second. Drop-frame profiles still count every picture frame, but selected label numbers are skipped at minute boundaries. For 29.97 DF, labels ;00 and ;01 are skipped at the top of each minute except each tenth minute. For 59.94 DF, labels ;00 through ;03 are skipped on the same affected minutes.
Formula Core
For a label with hour h, minute m, second s, frame field f, and nominal frame labels per second n, the raw label address is:
For drop-frame profiles, the skipped labels before that address are:
Here d is the number of skipped labels per affected minute, and M is total minutes since hour zero. The absolute frame address is:
The selected span and pull duration are then:
I equals 1 for an included end frame and 0 for an exclusive out point. H is the per-side handle count. Runtime seconds equal N divided by the real frame rate, such as 30000/1001 for 29.97 fps or 60000/1001 for 59.94 fps.
| Symbol | Meaning | Where it comes from |
|---|---|---|
| n | Nominal frame labels per second | Selected frame-rate profile or rounded custom NDF rate |
| r | Real playback frames per second | Profile value used for runtime seconds |
| d | Skipped labels per affected minute | 2 for 29.97 DF, 4 for 59.94 DF, 0 for NDF |
| I | Endpoint adjustment | 1 for inclusive end, 0 for exclusive out point |
| H | Handle frames per side | Entered handle count, rounded to whole frames |
Worked Mechanism
With 29.97 DF, 01:00:00;00 converts to frame address 107,892. The out label 01:12:34;10 converts to 130,500 after the drop-frame skipped-label correction. With an exclusive out point, the selected span is 130,500 - 107,892 = 22,608 frames, displayed as 00:12:34;10. At 30000/1001 fps, that is 00:12:34.354 of runtime. Eight handle frames on each side raise the pull duration to 22,624 frames, displayed as 00:12:34;26.
| Rule | Boundary | Resulting check |
|---|---|---|
| Minutes and seconds | 00 through 59 | Values above 59 are invalid. |
| Frame field | 00 through nominal rate minus 1 | 30-label profiles accept 00 through 29; 60-label profiles accept 00 through 59. |
| 29.97 DF skip | ;00 and ;01 at affected minute starts | Those labels are rejected except at each tenth minute. |
| 59.94 DF skip | ;00 through ;03 at affected minute starts | Those labels are rejected except at each tenth minute. |
| End before start | Lower end address than start address | Flag for review, or add 24-hour timecode days when wrap mode is selected. |
Accuracy Notes:
The calculation assumes both labels belong to one continuous timecode domain. It does not inspect media files, detect broken or duplicated timecode, read reel metadata, or infer mixed-rate sections inside an edit. Burned-in timecode, file metadata, edit decision lists, and the sequence timebase should agree before the result is used for billing, caption delivery, broadcast clock timing, or archive retrieval.
Custom frame rates use non-drop-frame labeling and round the frame field limit to the nearest whole nominal frame count. Use named drop-frame presets when a facility delivery sheet requires NTSC drop-frame behavior.
Advanced Tips:
- Keep Output separator on Auto unless a downstream sheet explicitly requires colon or semicolon formatting.
- Use the Last included frame and Next out point rows to reconcile one-frame differences with an editor or pull list.
- Use the Pull range with handles row for VFX, sound, or review turnovers; use Duration frames when the raw editorial span is the only needed value.
- Check the Drop-frame labels row before changing separators. A semicolon can be a display convention, but the selected frame-rate profile decides whether skipped-label validation is active.
- Use the Frame Budget Chart when handles are easy to overlook in a long pull. Very short handles may appear as small chart segments while still being present in the ledger.
Worked Examples:
Broadcast segment pull
A 29.97 DF range from 01:00:00;00 to 01:12:34;10 with an exclusive out point produces 22,608 selected frames, displayed as 00:12:34;10. With eight handle frames each side, the pull duration becomes 22,624 frames and the pull range runs from 00:59:59;22 to 01:12:34;18.
Included final frame
At 24 NDF, 10:00:00:00 through 10:00:00:23 is one full second only when the end frame is included. The result is 24 frames and 00:00:01:00. With an exclusive out point, the same labels produce 23 frames and 00:00:00:23.
Skipped drop-frame label
In 29.97 DF, 01:02:00;00 fails validation because labels ;00 and ;01 are skipped at minute 2. Keep the DF profile and move to the next valid label when the source is drop-frame; switch to a non-drop-frame profile only if the source timeline actually uses non-drop labeling.
FAQ:
Does drop-frame timecode drop video frames?
No. Drop-frame timecode skips label numbers at scheduled minute marks; the picture frames remain continuous.
Why does inclusive end add one frame?
When the entered end label is the last visible frame, both endpoints are part of the range. Exclusive out-point timing stops before the end label, so it does not add that frame.
Why does 29.97 runtime differ from 30 fps arithmetic?
29.97 fps video uses 30000/1001 frames per second. Over long durations, exact 30 fps arithmetic accumulates clock drift.
Why did a start or end label fail validation?
The label may use the wrong format, exceed the frame field for the selected profile, use minutes or seconds above 59, or land on a skipped drop-frame label.
When should 24-hour wrap be used?
Use wrap only when a lower end label intentionally belongs to the next 24-hour timecode day, such as an overnight roll or time-of-day recording. Leave it flagged for review when the end label may simply be wrong.
Glossary:
- Drop-frame
- A timecode labeling method that skips selected numbers to reduce clock drift at NTSC-derived fractional frame rates.
- Non-drop-frame
- A labeling method that keeps every nominal frame number, even when runtime drifts from clock time at 29.97 or 59.94 fps.
- Exclusive out point
- A range boundary where the end label marks the first frame after the selected span.
- Inclusive end
- A range convention where the entered end label is the last visible frame in the selected span.
- Handle frames
- Extra frames added before and after the raw duration for downstream pull, review, or finishing work.
- Real frame rate
- The playback rate used to convert a frame count into elapsed runtime seconds.
References:
- SMPTE ST 12-1:2014 time and control code standard preview, Society of Motion Picture and Television Engineers, 2014.
- Enter timecode, Adobe Help Center.
- Navigate using timecode in Final Cut Pro for Mac, Apple Support.