{"id":2921,"date":"2026-08-08T01:57:54","date_gmt":"2026-08-07T22:57:54","guid":{"rendered":"https:\/\/picajet.com\/articles\/glossary\/timecode\/"},"modified":"2026-08-08T02:07:08","modified_gmt":"2026-08-07T23:07:08","slug":"timecode","status":"publish","type":"glossary","link":"https:\/\/picajet.com\/articles\/glossary\/timecode\/","title":{"rendered":"Timecode"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Timecode is the addressing system that makes a specific video frame findable. Standardized by SMPTE as SMPTE 12M (revised into SMPTE ST 12-1 and 12-2), it labels every frame with an eight-digit HH:MM:SS:FF code on a 24-hour clock, so a DAM, an editing timeline, and a captioning tool can all agree on exactly which frame &#8220;01:12:34:07&#8221; refers to. Without it, frame-accurate markers, review comments, and EDL\/XML exchange between a DAM and an NLE have no common reference point \u2014 everything falls back to imprecise elapsed-time estimates instead.<\/p><p class=\"wp-block-paragraph\">The complication is that at 29.97 fps \u2014 the actual frame rate of NTSC video, a fraction below the nominal 30 \u2014 timecode has two competing counting conventions. Non-drop-frame (NDF) timecode counts every frame sequentially as if the rate were an exact 30 fps, which means it runs about 3.6 seconds slow relative to real clock time over the course of an hour. Drop-frame (DF) timecode corrects for this by skipping frame numbers 00 and 01 at the start of every minute except every tenth minute \u2014 no video frames are actually dropped, only two timecode numbers per skipped minute, which keeps the counter aligned with wall-clock time. Broadcast and streaming delivery typically require drop-frame; film-style post-production workflows more often use non-drop.<\/p><figure class=\"wp-block-table\"><table><thead><tr><th><\/th><th>Non-drop-frame (NDF)<\/th><th>Drop-frame (DF)<\/th><\/tr><\/thead><tbody><tr><td>Separator<\/td><td>Colon (01:00:00:00)<\/td><td>Semicolon (01:00:00;00)<\/td><\/tr><tr><td>Counts<\/td><td>Every frame sequentially at nominal 30 fps<\/td><td>Skips two frame numbers per minute (except every 10th)<\/td><\/tr><tr><td>Drift vs. clock time<\/td><td>~3.6 sec\/hour slow<\/td><td>Stays aligned with real time<\/td><\/tr><tr><td>Typical use<\/td><td>Film-style post-production<\/td><td>Broadcast\/streaming delivery<\/td><\/tr><\/tbody><\/table><\/figure><p class=\"wp-block-paragraph\">For a DAM, the practical consequence is that timecode has to be treated as metadata with a convention attached, not just a number. Two clips can both show &#8220;00:10:00:00&#8221; and refer to genuinely different frames if one is drop-frame and the other isn&#8217;t. Systems that store or generate timecode need to preserve which convention a given asset uses \u2014 and preserve whether it&#8217;s record-run (continuous across a shoot day) or free-run\/reset-per-clip \u2014 because that convention is what a downstream editor or captioning vendor will assume when they read the timecode back out.<\/p>","protected":false},"excerpt":{"rendered":"<p>Timecode is an SMPTE 12M-standardized HH:MM:SS:FF address assigned to every video frame, used to uniquely identify, locate, and synchronize that frame across editing, review, and archival systems.<\/p>\n","protected":false},"author":0,"featured_media":0,"template":"","meta":{"footnotes":"","faq":[{"question":"What is the difference between drop-frame and non-drop-frame timecode?","answer":"Both apply to 29.97 fps video. Non-drop-frame counts every frame as if the rate were exactly 30 fps and drifts about 3.6 seconds behind real time per hour. Drop-frame periodically skips two timecode frame numbers per minute (except every tenth minute) to stay aligned with clock time \u2014 it never removes actual video frames, only renumbers them."},{"question":"Do 24 fps and 25 fps footage need drop-frame timecode?","answer":"No. Drop-frame timecode exists specifically to reconcile 29.97 fps counting against a 30-based clock. Film-rate 24 fps and PAL 25 fps don't have that fractional mismatch, so they use non-drop-frame timecode exclusively."},{"question":"Why does timecode matter for DAM search, not just editing?","answer":"A DAM that stores timecode alongside a clip lets users search or jump directly to a marked moment \u2014 an interview answer, a specific take, a flagged error \u2014 instead of scrubbing the whole file. Without accurate timecode, in\/out markers and review annotations have no reliable frame reference to attach to."},{"question":"What happens if timecode resets to zero on every clip instead of running continuously?","answer":"That's free-run\/reset timecode versus record-run timecode. Reset timecode makes every clip's frame addresses non-unique across a shoot (multiple clips can share \"00:00:00:00\"), which breaks any DAM workflow that relies on timecode alone to uniquely identify a frame across an entire archive rather than within a single file."},{"question":"How does timecode relate to multicam synchronization in a DAM?","answer":"Multiple cameras jam-synced to the same timecode source (or matched afterward via timecode) can be grouped and cut together frame-accurately. If one camera's timecode wasn't jam-synced or drifted, the DAM's multicam grouping and any auto-sync based on timecode will be off by however many frames that camera's clock diverged."},{"question":"Can burned-in timecode (visible on screen) substitute for embedded timecode metadata?","answer":"It can serve as a human-readable reference for review copies, but it's not machine-readable metadata \u2014 a DAM can't search, sort, or programmatically sync clips using timecode that only exists as pixels in the image. Embedded timecode metadata is what search, EDL export, and automated sync actually rely on."}],"checked_date":"2026-08-07","sources":[{"statement":"SMPTE timecode (SMPTE 12M) labels video frames with an HH:MM:SS:FF address on a 24-hour clock.","source_name":"SMPTE \u2014 Understanding Standards: Time Code","url":"https:\/\/www.smpte.org\/blog\/understanding-standards-time-code","checked":"2026-08-07"},{"statement":"Non-drop-frame timecode at 29.97 fps runs approximately 3.6 seconds slow per hour relative to clock time; drop-frame timecode skips frame numbers 00 and 01 each minute except every tenth minute to correct for this.","source_name":"TC-Calc \u2014 Drop Frame vs Non-Drop Frame","url":"https:\/\/tc-calc.com\/drop-frame.html","checked":"2026-08-07"}],"kicker":"","fact_checker":0,"reading_time":0,"revisions":[],"seo_title":"","seo_description":"","noindex":false,"related":[2923,2924,2920,2474,2925,2538],"definition":"Timecode is an SMPTE 12M-standardized HH:MM:SS:FF address assigned to every video frame, used to uniquely identify, locate, and synchronize that frame across editing, review, and archival systems.","why":"In a DAM, timecode is what turns a video file from an opaque blob into something you can mark, search, and reference at frame-level precision \u2014 clip-in\/out points, review comments, and EDL\/XML exports to an NLE all depend on it matching between the DAM and the editing environment. If the DAM stores or displays timecode using a different drop-frame convention than the one baked into the source file, markers and cut points land on the wrong frame the instant that reference crosses systems, which is exactly the kind of error that surfaces during a conform rather than during review. Multicam sync in a DAM also relies on matching timecode across angles, so a single camera jam-synced incorrectly breaks grouping for the whole set.","example_rows":[{"field":"Standard","values":"SMPTE 12M \/ ST 12-1, format HH:MM:SS:FF"},{"field":"Non-drop frame (NDF)","values":"Colon separator (01:00:00:00); counts every frame sequentially; drifts ~3.6 sec\/hour from clock time at 29.97 fps"},{"field":"Drop frame (DF)","values":"Semicolon separator (01:00:00;00); skips frame numbers 00 and 01 at the start of each minute except every 10th minute, to stay aligned with real clock time"},{"field":"DAM implication","values":"A marker set in DF timecode and read as NDF (or vice versa) can land on a different frame after ~10+ minutes of runtime"}],"mistake":"A common mistake is mixing drop-frame and non-drop-frame timecode across a workflow \u2014 a camera set to record drop-frame, an edit timeline set to non-drop, and a DAM that displays whichever it defaults to \u2014 so markers, EDLs, and captioning timing exported from one system land on the wrong frame in another, an error that only becomes visible after enough runtime has passed for the two counts to diverge.","deep_link":""},"silo":[24],"class_list":["post-2921","glossary","type-glossary","status-publish","hentry","silo-glossary"],"_links":{"self":[{"href":"https:\/\/picajet.com\/articles\/wp-json\/wp\/v2\/glossary\/2921","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/picajet.com\/articles\/wp-json\/wp\/v2\/glossary"}],"about":[{"href":"https:\/\/picajet.com\/articles\/wp-json\/wp\/v2\/types\/glossary"}],"version-history":[{"count":1,"href":"https:\/\/picajet.com\/articles\/wp-json\/wp\/v2\/glossary\/2921\/revisions"}],"predecessor-version":[{"id":3374,"href":"https:\/\/picajet.com\/articles\/wp-json\/wp\/v2\/glossary\/2921\/revisions\/3374"}],"wp:attachment":[{"href":"https:\/\/picajet.com\/articles\/wp-json\/wp\/v2\/media?parent=2921"}],"wp:term":[{"taxonomy":"silo","embeddable":true,"href":"https:\/\/picajet.com\/articles\/wp-json\/wp\/v2\/silo?post=2921"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}