SMPTE time code is a broadcast standard time which is recorded in the HH:MM:SS;FF format where FF is a frame number between 00 and 29. This gives the television frame rate of 30 frames/second (almost... keep reading). Each frame is made of two interlaced fields, so video data resolution of 1/60 of a second is possible with standard VCR equipment (the University of Alaska Group uses 3/4" beta broadcast quality recorders, other groups use SVHS recorders).
Simple enough so far. The problem comes because it is actually a drop frame counting in order to compensate for the NTSC frame rate of 29.97 frames per second. This means that the 00 and 01 frames are dropped at the start of each minute except minutes which are even multiples of 10.
During the drop-frame cycle, error accumulates at .001 sec. per sec. until the minute is reached at which time a .066 second compensation is inserted by dropping 2 frames. Below you can see an image of the saw tooth pattern this creates in time code over a ten minute period.
The plot shows a total of ten minutes worth of frames. This plot was created using a perl script to convert a ten minute file of frame numbers to ut time, and then using the pgperl plotting module by Karl Glazebrook to plot the difference. A C SMPTE to UT converter is also available.
By Matt Heavner. November 15, 1995