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.

Drop-Frame Timecode

NTSC colour signals have an actual frequency of close to 29.97 frames-per-second. As cue points must be located at frame boundries, this figure is normally rounded up to 30 frames-per-second, causing an excess of 108 frames per hour.

To eliminate these 108 frames each hour, 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 number following 01:04:59:29 would be 01:05:00:02, time code frames 01:05:00:00 and 01:05:00:01 don't exist.

String Representation

SMPTE/EBU did not define a string representation for timecode values. 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 i 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.