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.
Figure 1. The graphical view in Sliq Media’s WMSnoop identifies key frames (the yellow frames on the bottom) and individual frame sizes.
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.