Timecode

Timecode is an electronic signal which labels video frames on video tape. The ideas for the format were invented by NASA for telemetry tapes tracking space missions. The concept was adopted by EECO in 1967 for video editing, and, after many folks had built similar (but in-compatible) systems, SMPTE created the standard in 1969. The European Broadcasting Union adopted the standard and it is now called SMPTE/EBU (referred to simply as "timecode").

Timecode may be recorded on tape in two ways:
 

These two formats are similar as far as the edit information they contain.

Longitudinal Time Code (LTC) is an electronic signal that switches from one voltage to another, forming a string of pulses, or bits. Each one-second long chunk of this signal is "sliced" into 2400 parts (for NTSC) or 2000 parts (for PAL/SECAM). This makes 80 time code bits for each video frame:
 

VITC (Vertical Interval Time Code) format adds 10 extra bits to each frame label. These add the following to the LTC list, above:
 

The hours/minutes/seconds/frames is the primary information we are interested in. This data is Drop-frame, Non-drop frame or EBU (25 frames/sec, PAL/SECAM) as indicated by the "drop-frame" flag.

The "sync word" and "sync bits" are the heart of how timecode works. As the tape moves, these bits instruct the electronic reader which direction the tape is moving, where the hours/minutes/seconds/frames, drop-frame bit, etc. are located and (if properly aligned on the tape) where the video frames themselves are located with respect to the timecode stream.

All of this is pretty clever, when you think about it. The tape is moving at an unknown speed in either direction as the machine is used, yet the timecode can be read at all times (given a good recording and properly functioning equipment). Note that, at microscopic levels, the tape is jumping and jittering across the reader heads, stopping, reversing direction, going into fast-forward, etc. The sync words and the design of the readers makes it all work! Cool.

NTSC timecode comes in two flavors - Non-drop frame and Drop-frame, and there is only one PAL/SECAM, sometimes called "EBU". These are usually displayed as:

 

Most sytems:

Non-dropframe: 1:00:00:00 - colon in last position

Dropframe: 1:00:00;00 - semicolon in last position

PAL/SECAM: 1:00:00:00 - colon in last position

 

SONY:

Non-dropframe: 1:00:00.00 - period in last position

Dropframe: 1:00:00,00 - comma in last position

PAL/SECAM: 1:00:00.00 - period in last position

NTSC - DROP Frame versus NON-DROP, and PAL (EBU)

 

Non-drop Frame

NTSC video actually runs at 29.97 frames per second, not 30 fps, as is usually implied. If you label all the NTSC frames incrementally, as with NON-DROP FRAME, a 01:00:00:00 label (a colon in the last position indicates non-drop frame) will represent 108,000 video frames (from zero). 108,000 NTSC video frames actually takes 01:00:03:18 to play back. In other words, 01:00:00:00 in NON-DROP frame is not truly 1 hour, but 1 hour and 3 seconds, 18 frames.

This leads to the inconvenient fact that timecode calculations do not represent real-time. 2:00:00:00 minus 1:00:00:00 equals 1:00:00:00 in non-drop frame, BUT the running time of this duration is really 1:00:03:18.

 

Drop-frame

Many people are very concerned with the actual running time. (Imagine a network making a 3 second & 18 frame error when broadcasting the Superbowl with advertisers paying $33,333 per second! (1995)) The drop-frame labeling scheme was designed to over-come the inaccuracy of non-drop frame labeling, and it is gospel in broadcasting.

The drop-frame format represents the NTSC running time accurately by "dropping out" some of the frame labels - specifically, 2 frame labels at the end of each minute except each 10th minute. This way, a display of drop-frame 01:00:00;00 (semicolon indicates drop-frame) represents 107,892 video frames, or exactly 1 hour of real time from zero.

No actual video frames are "dropped" (where could they go?) - only the timcode labels of the frames. At any point through the labeling sequence the timecode label is very close to the actual elasped time (from zero). Since the labels represent an accurate time-line, adding or subtracting drop-frame timecode results in an accurate calculation - 2:00:00;00 minus 1:00:00;00 equals 1:00:00;00 - one true hour of running time.

 

PAL/SECAM - EBU

PAL and SECAM video run at precisely 25 frames per second so the DROP frame/NON-DROP frame issue is meaningless. 01:00:00:00 in EBU represents 90,000 PAL video frames- precisely 1 hour of running time.