File Analysis Tools for Streaming Video

For the most part, streaming files provide a pitiful amount of useable data,
which makes programs that provide insight to the content of these files invaluable to compressionists.

Depending upon your needs and operating system, there are a number of
programs—most free, some at a price—that may fit the bill quite nicely.
In this review, I’ll look at a several such programs, including Apple’s
QuickTime Pro, Steve Greenberg’s GSpot Codec Information Appliance,
Inlet Technologies’ Semaphore, Jerome Martinez’s MediaInfo, and Sliq
Media’s WMSnoop. All of them let you take a look under the hood to see,
to varying degrees, just what that file is made of.

How I Tested

Before jumping into the individual reviews, let’s take a look at the
features available in each of these tools.Table 1. General characteristics of streaming analysis tools.

Most of the features are self-explanatory, so I’ll run through them
quickly. QuickTime Player and MediaInfo are the only cross-platform
tools, though the Mac version of MediaInfo has fewer features than its
Windows counterpart, including the inability to open multiple instances
of the program, a useful feature that lets you compare files side by
side. All the tools let you load files via drag and drop, which is
faster than using menu commands when analyzing lots of files.

One important differentiating feature is the ability to export file
analysis reports, a convenience for formal quality control or testing.
Only two tools present information in a graphic display, which lets you
easily see the file’s overall data rate and individual frame sizes. Two
of the tools can batch their analysis functions, while only one,
Semaphore, lets you analyze files for specific problems such as
excessive quantization levels, dropped frames, or audio levels that are
too high or too low.

Beyond these general features, there is some specific information I’m
looking for when analyzing files, some of it universal, some of it
codec-specific. For all files, I’d like information on codec,
resolution, frame rate, data rate, and whether the file was produced
with variable bitrate (VBR) or constant bitrate (CBR) encoding. For
audio, I like to know the codec, data rate, and sample rate, whether
the file is mono or stereo, and whether the file was produced with VBR
or CBR techniques. Some of this information I can get from the regular
player I use for each file, though for more extensive information, I’ll
need additional programs.

Table 2. Universal and codec specific file information.

Other useful details include a file creation date, whether the file
contains dropped frames, and the ability to visualize the I-, B-, and
P-frame sequence used in the file, which becomes especially important
with H.264. Quality metrics are also useful, but they vary by the tool.
For example, two of the tools, GSpot and MediaInfo, provide the
calculated bits/pixel-frame, an easy way to compare the bitrate
allocations for files encoded to different resolutions and frame rates.
In contrast, Semaphore provides the actual quantization level used for
each frame, which I explain further later.

To ascertain the unique value of a quality control tool, you first
should look at the information provided by the media playback tool
commonly used for each format. My FLV player of choice, appropriately
named FLV Player, provides many of the necessary basics, including
audio and video codecs, resolution, frame rate, and total reported
(rather than calculated actual) audio and total data rates. This is a
free, Windows-only program that you can download at www.martijndevisser.com.

Figure 2. Martijn de Visser's free FLV Player gives you lots of good information right off the bat.

VBR versus CBR encoding is a critical distinction for Flash files,
since this is one of the significant feature gaps between free VP6
encoding tools and those you have to pay for. As you may know, On2
recently separated the VP6 codec into two profiles, VP6-E, which uses
low-complexity algorithms suitable for cell phones and other low-power
devices, and VP6-S, the full-strength algorithm for normal desktop
playback. It would be great to be able to tell which profile was used
during encoding, though the delineation is so new that none of the
tools make this distinction.

For the sake of completeness, I’ll mention Adobe’s own FLVCheck tool,
which is a simple command-line tool that lets you verify that files
conform to the Adobe FLV specification. This tool, now included with
Adobe Flash servers, doesn’t disclose any file-based details, but can
be invaluable if your files aren’t playing normally with the Flash
Media Server.

Very informative article. I was excited to find it and read your reviews, and am eager to try the various applications you tested. Only to find that Inlet was absorbed into Cisco and I can't find mention of the Semapore application anywhere. I was wondering if you know where I still might be able to find a copy of this?