Adding Timecodes

In the professional realm, videotapes often have a timecode track in addition to their audio and video tracks. This track enumerates every video frame, and is used typically for various purposes: editing, logging what’s on a tape, etc. Professional tape decks usually have an LED or LCD display of the timecode, and optionally can display timecodes on-screen.

You might think the text track provides a convenient way to embed timecodes—they’re string values—you can have one for every frame of video (or many, if you set your time scale really high), you can read them from the TextMedia object, you can turn their display on and off by enabling and disabling the track, etc.

And this would be fine. But fortunately, QuickTime has a real timecode track that goes much further. Adding timecodes to a movie, in a format and resolution suitable for professional work, is a snap.

How do I do that?

No surprise, once again the key is to create a new track with a specific kind of media and to add samples to it. This time, the desired media class is TimeCodeMedia .

What’s really interesting is that you don’t actually write a sample for every video frame. You need to write only a single sample to define the timecode format and a start time, at the beginning of the period for which you want to provide timecodes. Because QuickTime already is measuring time in your track, at an arbitrary precision (i.e., the time scale you set for it), it can figure out the timecode for any time later in ...

Get QuickTime for Java: A Developer's Notebook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.