Frame Grabs and Shot Logging

Frame Grabs and Shot Logging

Wednesday, July 11th, 2007

Many months ago, I sent around a query asking everyone I could think of how best to log individual shots from a video source.  Since then I’ve noodled around with a variety of solutions to my problem and come up with a near-perfect way to handle this.

I’ll insert my findings into my original note below, but the executive summary may be found if you…

1. Cinemetrics software counts the length of shots and the number of shots using a particular framing (i.e., “shot scale”:  close-up, medium shot, long shot, etc.).  It’s available, for free, from:

The software currently runs on Windows, principally, but there is also an online version and a Mac version is in development.  To try it online:

2.  The VideoLAN VLC Media Player grabs frames and can be configured to record the timecode.  Also free, it’s available from:

VLC runs on Windows, Mac, Linux, and other operating systems.

Bits from a 1/18/07 email are included in italics below.

I’m working on a project where I need to log individual shots in television programs. The key data I need are the length of each shot and what its framing is ( i.e., long shot, medium shot, close-up).  The programs are currently on DVDs.

1.  View the DVD on a computer or a set-up DVD player.

VLC plays most video forms — DVD disks, video files (even Flash video!), etc.

Cinemetrics is not a player.  Rather, it’s designed so that you run it on your computer while watching video that can be playing on your computer or through a DVD player/VCR or even, presumably, in a movie theater.

2.  Record the start and stop time of each shot.  It’d be great if these data could be automatically or semi-automatically recorded.  E.g., press a hot-key as a shot starts/ends and the timecode is recorded.

This hot-key approach is precisely how Cinemetrics works.  After the semi-automatic recording of start/stop times, Cinemetrics calculates the source’s average show length (ASL) and, optionally, counts the instances of various shot scales.  Moreover, Cinemetrics allows you to submit your findings to a centralized database at

Here you can see the ASL’s of dozens of films (and a sprinkling of TV shows) as determined by film/TV scholars such as Barry Salt and Yuri Tsivian.  Also, a database of Salt’s work is available here.

VLC is not, by default, able to record start/stop times, but new versions of it under development and currently in beta testing are getting close.  Here’s what I’ve recently discovered:

VLC has long been a capable frame grabber — making what it calls “Video snapshots” with the click of a mouse, or the press of a hot-key.  What’s new in the current versions ( 0.9 and above) is that it will now record the video source’s timecode as part of the grab’s file name.  So, for example, if you grab a frame from 1 minute, 5 seconds into a DVD of Leave It to Beaver, as I recently did, VLC can create a file named:


(That’s 00 hours, 01 minute, and 05 seconds into the DVD.)

Now that you have the timecode in the filename, there is probably some way that you can calculate the length of shots, but I haven’t figured that out yet.  Perhaps some sort of online system could use PHP and MySQL to do so.  Still, I think it’s very cool that one can watch a DVD on your computer and, by pressing a hot-key at the start of each new shot, create a shot-by-shot record of a film, TV program, or whatever.

VLC’s naming of frame grabs is actually a bit more complicated than this, but I’ll resist going into details since this is all still in beta.  If you feel like testing it out, you’ll need to glom onto one of the “nightly builds”:

One tip:  Put $T_ (dollar sign, T, underscore) as the video snapshot’s “prefix” to generate a timecode-based file name.  And also check “Sequential numbering.”

3.  Note the shot’s framing.  This will involve human interaction, I presume, as the viewer (coder?) decides if it’s a long shot, medium shot or whatever.  Perhaps an interface could be devised, however, where the viewer simply clicks a check box to indicate this.

Yep.  Cinemetrics does this.

4. A quick frame capture of each shot could also be useful for future analysis.

See comment on VLC. With shot-by-shot frame grabs you open up all sorts of possibilities for analysis.

5.  Store the data in either a spreadsheet or database (preferably MySQL) for analysis.

Cinemetrics automates the storage of these data in its centralized, online database.  Optionally, the user may also store his/her data in a spreadsheet on his/her own system.  However, as far as I know, the data in the centralized database are not downloadable.  One can view them online, but I do not think you can download your own copy.  However, perhaps the Cinemetrics team might be willing to provide such data if you request it.

So, that’s the state of individual shot logging as best I can tell.  There are, of course, non-linear editing systems — notably Final Cut Pro — that will log shots and create much more detailed logs in the process.  However, none of the NLE systems I’ve seen work as quickly and easily as Cinemetrics and VideoLAN VLC Media Player.

If you’ve figured out a better way, please do let me know!


Comments are closed.