Timecode

Time Code is a method of accurately identifying each frame in a video sequence. It is an international standard jointly developed by the Society of Motion Picture and Television Engineers (SMPTE) and the European Broadcasting Union (EBU). VTR transports and associated equipment use SMPTE/EBU timecode values for Frame Accurate cueing.

SMPTE/EBU Time Code values are represented in four (8-bit) bytes, where each byte contains two BCD encoded digits, the tens digit and the unit digit. The bytes represent values for Hours, Minutes, Seconds and Frames accordingly.

Origin of Frame Dropping

The notion of dropped frames is a second order effect, deriving from the modifications to NTSC that enable color broadcasting. NTSC colour signals have an actual frequency of close to 29.97FPS (frames-per-second).

One of the side effects of this change was that frame rate clocks would slowly get out of sync with wall clocks. This was reconciled by dropping some of the timecode labels.

24FPS (derived from Film) and 25FPS systems (derived from PAL) do not have this concern.

Drop-Frame Timecode

In one hour, a 30FPS system produces 108 frames more than one running at 29.97FPS. To reconcile this difference, two specific time code frame values are dropped each minute (2x60=120), except every 10th minute (2x60-2x6=108). The time code values dropped are specified as the first two frames of a minute.

Thus, the time code label following 01:04:59:29 would be 01:05:00:02, time code labels 01:05:00:00 and 01:05:00:01 don't exist.

Display Representation

SMPTE/EBU did not define a standard display representation for displaying timecode values. The eight BCD values (contained within four bytes) are typically represented by eight characters, two each for hours (HH), minutes (MM), seconds (SS), and frames (FF). These values are typically delimited by punctuation, today a number of representations are in common usage:

Period to indicate Drop-Frame
Popularized by Panasonic and Leitch, this scheme displays non-dropframe timecode values as HH:MM:SS:FF and dropframe values as HH:MM:SS.FF, the dropped dot is a clever mnemonic. But the format can now could be confused with the decimal fractions of seconds in an ISO-8601 time of day profile.
Colon to indicate Drop-Frame
Popularized by Avid, and now common in most non-linear editors, this scheme displays non-dropframe timecode values as HH:MM:SS:FF and dropframe values as HH:MM:SS;FF
Prepending or Postpending a character
Common in systems that also support film, the HH:MM:SS:FF string is accompanied by a character N(NDF), D(DF), P(PAL), or F(film)

Different Domains

Timecode is used in two different domains. In production, (editing) timecode is a means of identifying video frames, but in (master control) presentation, timecode is used to synchronize activities along a timeline. Timecode is a useful, (good enough) but not perfect bridge between the production and presentation aspects of television. Where this is most noticeable is in timecode math:

In production:
if a clip starts at 01:02:03:04 and ends at 01:02:03:05, the clip is two frames long: 01:02:03:05 - 01:02:03:04 = 2 frames
In presentation:
if a clip starts at 01:02:03:04 and the next one starts at 01:02:03:05, the clip is one frame long: 01:02:03:05 - 01:02:03:04 = 1 frame

Until recently, as production and presentation were essentially separate, so this difference was not significant. But as new technologies start to move timecode data across these domain, it is more important to acknowledge and accommodate the differences.

Beyond SMPTE/EBU

SMPTE Drop-Frame Timecode values were only intended as a handle to identify specific video frames. As such the only valid values are in the range 00:00:00:00 to 23:59:59:29.

However, Drop-Frame Timecode notation is also a convieniant way to express duration. For example, a 900 frame commercial spot is commonly described as having a duration of 00:00:30:00. This pattern of use infers values beyond those described by SMPTE. For example, a four-day telethon could be described as having a duration of 96:00:00:00.

For these long events, sometimes an extra column for days is used, so the string becomes DD:HH:MM:SS:FF.

Drop-Frame Timecode notation is also commonly used when compare durations. In this usage pattern, the notation is extended to support a concept of sign. For Example a negative value can represent that a timeslot is insufficiently filled (time-under) by programming, while a positive value represents the opposite (time-over) condition.

In these ways, Drop-Frame Timecode notation is used in ways not encompassed by the original SMPTE definitions.