Under the hood: these analysis tools let you see just what those video files are made of.
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. I've summarized the general features in Table 1.
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 OMITTED]
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 (Figure 1). 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. I summarize this in Table 2. 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.
[FIGURE 2 OMITTED]
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 (Figure 2). This is a free, Windows-only program that you can download at www.martijndevisser.com.
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.
[FIGURE 3 OMITTED]
[FIGURE 4 OMITTED]
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.
When viewing WMV files in Media Player, the Properties window (File > Properties) identifies the total bitrate, resolution, audio and video codecs, and audio bitrate (Figure 3), and you can get the playback frame rate in the Statistics screen by clicking View > Statistics during the video playback. In addition to this data, I need to know which SDK I've used during encoding, since SDK 11 delivers slightly better quality, even with the older WMV9 codec.
When analyzing multiple bitrate files, I need to know the resolution, frame rate, and data rate parameters for each audio and video stream. If you're a "tweaker," whether via the Windows Media Power Toy, command-line encoding, or a tool that incorporates the SDK 11 tweaks, you'd also like as many of these tweaks as possible exposed in the file analysis, but don't hold your breath, since none of the tools provide this information.
MPEG-4 is a very complex algorithm with lots of configurable parameters. As you can see in Figure 4, the free QuickTime Player provides some of the basics, including audio and video codecs, resolution, data rate (in kilobytes/second) and frame rate. This information is available in the free QuickTime Player, with some critical information about hinted files available only in QuickTime Pro, which is the version I describe in Table 2 and below.
Beyond this information, I'd love to know which H.264 codec was used to produce the file, since quality varies widely among them. I found no joy here, as no program identified the codec brand.
You'll have better luck identifying the codec (MPEG-4 versus AVC) and profile used to produce the file, which most programs reveal. If you experiment with lots of encoding parameters, you'd probably like to know the B-frame interval and whether CABAC or CAVLC was utilized, since both affect the horsepower required to play the file.
When producing for a QuickTime server, you need to know if the file was hinted (i.e., whether control-data tracks were added), which QuickTime Pro can show you, and whether it was flattened (i.e., made accessible to multiple platforms) with a fast start header at the front of the movie. I found no tool that provided this last bit of data; the only piece of useful advice I found was to view the file header in a hex editor. If there's an "mdat" string near the front of the file, it's probably not a fast start; if there's a "moov" string followed by an "mdat" string, it's probably fast start.
I also found a free tool called Lillipot that will add fast start headers to a batch of MOV, MP4, M4V, and M4A files, which you can find at www.qtbridge.com/ lillipot/lillipot.html.
Now that we know what to look for, let's have a look at the five tools I considered.
QuickTime Player can open multiple instances on Mac and Windows, which makes it an essential playback tool for all QuickTime and H.264 producers. As a diagnostic tool, QuickTime Player is very limited, though if you upgrade to QuickTime Pro ($29.99), you can access unique data relating to hinted streaming files.
QuickTime Pro has two diagnostic screens, Movie Inspector (Window > Show Movie Inspector), shown in Figure 4, and Movie Properties (Window > Show Movie Properties), shown in Figure 5. Movie Properties provides the best view of hinted streaming files that I've seen, identifying the streams and showing their respective data rates. Note that data rate is not one of the default columns; you have to right-click the window and choose it and other desired columns from the context menu.
Information about the hinted tracks proved particularly useful when producing with Telestream Episode, since the program allocates a disproportionately high data rate to the Hinted video track-approximately 3-4 times higher than other encoders. For example, in Figure 5 you can see that the data rate for the hinted video track is higher than the actual streamed video. While this shouldn't affect actual streaming bandwidth, since the hinted track never leaves the server, it does make the file look disproportionately large from a file-size standpoint, which is disconcerting. QuickTime's Movie Properties window is the only tool that explains why the Telestream file is much larger than files produced by other encoding tools.
[FIGURE 5 OMITTED]
Other than this unique capability, however, QuickTime Player falls well short of other MOV analysis tools on the Windows and Mac platforms. Probably the best alternative is MediaInfo, which is similarly available on both platforms.
GSpot is a free, Windows-only file tool you can download from http://gspot.headbands.com. To get up and running, you download a zipped file containing the Gpot.exe file, which never really installs itself. Instead, you just click the EXE file when you want to analyze a file, which runs the program. I prefer not to install shareware programs, and I like this mode of operation. Once up and running, you can load files via a File > Open menu command, or via drag and drop.
GSpot was originally designed as kind of a geeky diagnostic tool to help identify the codecs necessary to view a particular file. As such, it's got some compelling features, such as the ability to display all codecs and filters on your computer and track the video and audio rendering chain that displays your media. The program also offers some great functionality for MPEG program or elementary streams, where it can show groups of pictures color coded by frame type, with overlays for B-frame redundancies and actual frame numbers in the GOP. Definitely fun stuff.
As you can see in Figure 6, however, most of the Video section, including these details, remains grayed out for Windows Media files, as well as MOV and FLV files, indicating a drop in utility for streaming file analysis. There are some bright spots, such as revealing the date of file creation as well as any metadata packed with most files. You can see the latter in Figure 6, where Sorenson Squeeze 5.0 sneaks in a mention as the encoding tool. GSpot also calculates the frame quality (Qf), or bits/pixel-frame, which you can see on the far right in Figure 6. This is a nice way to compare the per-pixel data rate of files with disparate frame sizes or frame rates.
For all streaming formats, you get the basics shown in Figure 6, with video data rate and frame rate calculated rather than simply reported from the file header or metadata. Strangely, the program failed to display a frame rate for all Windows Media files that I tested, though it worked for other streaming formats.
[FIGURE 6 OMITTED]
When analyzing Windows Media files, GSpot fails to reveal any details of the multiple streams, or the WMFSDK version used to produce the file. Similarly, with Flash, GSpot provides basics that may not be available in your Flash Player, such as codec and calculated frame rate and data rate, but no information you can't get from MediaInfo.
With H.264 files, GSpot again falls behind MediaInfo, failing to provide profile and level, or whether the file was produced with CABAC or CAVLC encoding. GSpot also doesn't show the audio data rate for all AVC-encoded files, which MediaInfo always provided.
[FIGURE 7 OMITTED]
[FIGURE 8 OMITTED]
You can configure GSpot to write out reports containing all reported data for each file analyzed, a simple way to track and accumulate file-based data. You can create separate reports for each file or accumulate all reports in a single file, and analyze a folder full of files in batch, another nice convenience. Overall, GSpot is competent, but its primary strengths lie outside the streaming market, and it's best-suited for MPEG-2 and AVI file analysis.
Inlet Semaphore ($995) is the only true quality control tool of the bunch, and reviewing it in situ only heightened my appreciation for its capabilities. That said, it also revealed a number of issues-some minor, some more serious-that hopefully Inlet can address in a subsequent release. Make no mistake, however-if automated multicodec quality control is your goal, the Windows-only Semaphore is the only product that fits the bill. Don't worry; you don't need to spend $995 to test out Semaphore, as there's a free trial available. Check it out.
Though the two roles are obviously related, you can use Semaphore as a quality control engine and as a file viewer with extraordinary visual analysis and file details. Let's start with the first role. At Semaphore's QC heart is a series of configurable alerts, each specific to a quality-related issue.
For example, you can see in Figure 7 that I've configured alerts for five potential problems. Unique to Semaphore is quantization level, which measures the compression required to produce a frame, ranging from one (lowest compression) to 31 for Windows Media and MPEG-2, and 51 for H.264 and Flash. While the effects of excessive quantization vary from file to file, once levels exceed eight (for Windows Media and MPEG-2) or 25 (for AVC and Flash), visual artifacts may start to appear.
Other alerts are less exotic but equally useful. I've configured alerts to let me know if the file bitrate exceeds a certain level for a particular length of time, if there are any dropped frames, if audio volume exceeds or falls beneath certain levels, and if any particular frame size exceeds a specified number.
Once I've set up these alerts, I can view the file in Semaphore and the color codes will alert me to problem areas in the file, as you can see in Figure 8, in the timeline just below the video window. The red bar means that quantization levels exceed eight, and the blocks in the image show that excessive quantization was a valid predictor of quality concerns. The green bar indicates that the file bitrate exceeded certain levels, while the faint orange line indicates a dropped frame.
Semaphore can also produce HTML reports showing the alerts in summary form (Figure 9) or each location of a problem frame. I can also run this analysis in batch mode, throwing multiple files (or folders full of files) at the Semaphore analysis engine. The program will analyze each file and produce a report for each one. You'd need to open each HTML file to see if there were problems; missing and sorely needed is a summary report that can identify all files with problems in the batch. Still, you have to walk before you can run, and Semaphore is miles ahead of any competitor in terms of automated quality control.
[FIGURE 9 OMITTED]
That's the quality control angle; now let's look at Semaphore as a file viewer. As shown in Table 1, you can open up multiple instances of Semaphore and load files via drag and drop. In addition to the visual graphs shown in Figure 8, Semaphore can also display a File Properties page with details that vary by format, as discussed below. The program always calculates the true total and video data rate, but doesn't show the audio data rate although since all you have to do to compute it is subtract the video data rate from the total data rate, it's not exactly rocket science to figure it out.
As you can see in Figure 8, the program has a highly capable integrated file viewer. Most notably, you can move through the file frame by frame, with the Current Values for each frame shown in the eponymous window. The viewer identifies whether a frame is I, B, or P, so you can determine the number of B-frames per GOP or determine whether your encoding tool is inserting key frames at scene changes.
Beneath the timeline are multiple graphs that you can configure to show quantization level, bitrate, and audio volume (all shown in Figure 10). You can also examine buffer fullness and frame size. You can also analyze two files at one time. For example, in Figure 10, I'm analyzing two files, one produced using VBR (black line) the other CBR (blue line). Which file would you rather stream to a cellular customer?
For Windows Media Video files, Semaphore does show whether the file was produced with VBR or CBR techniques, but it listed every file as CBR, even though later file details listed a file as VBR. Sounds like a bug to me--I'd trust MediaInfo for this information more than Semaphore. Though Semaphore identified multiple bitrate files, details about each stream were scant--you'll have to check with WMSnoop for resolution, data rate, and the like.
Semaphore won't load Flash files produced with the Spark codec, an understandable decision on Inlet's part not to devote the resources necessary to analyze what is essentially a dying codec. Still, a clearer error message might avoid some confusion as to why "this file can't be rendered."
The most serious limitations relate to QuickTime files, where Semaphore can't load files that have been hinted for streaming or have a compressed header for Fast Start. So if you're producing files for the QuickTime server, or for progressive download, Semaphore is definitely not for you. On a positive note, H.264 producers can determine B-frame statistics by paging through a couple of GOPs and identifying the particular frame types, though they'll eventually need to resort to MediaInfo to figure out whether a file was encoded with CABAC or CAVLC.
[FIGURE 10 OMITTED]
Overall, Semaphore is comprehensive and highly usable, though, as mentioned, Windows-only. Beyond the QuickTime-related limitations, it's hard to imagine a serious streaming producer who couldn't benefit from having the product in her shop.
MediaInfo is a cross-platform tool that offers an extensive and often unique range of data and the ability to export file-based information for printing or further analysis. The Windows version is available in 23 different languages, including simple and traditional Chinese, and both Mac and Windows versions are free, though donations are gladly appreciated.
You can download the Windows version at http:// mediainfo.sourceforge.net/en, and the Mac version, which is produced by another developer but based upon Windows code libraries, at http://massanti .com/mediainfo. The Windows version is more featurerich, supplying more file-related data, allowing you to open multiple instances, and offering multiple data views. Still, the Mac version is a great complement to QuickTime Pro for MOV files and also supports Windows Media and FLV files.
Both versions load via drag or drop or via traditional menu or button controls. In the Windows version, you have six different views, including text, HTML, and the Mac-style tree view. Click Debug > Advanced Mode in the windows version, and the program shows about three times the data, though most of the critical data is available in the Basic view.
The Mac version of MediaInfo is only able to export a simple text file while the Windows version can output CSV, HMTL, text, and custom formats. The Windows version can also analyze all files in a folder, either collecting reports in a single file or assembling multiple files into a single report. The Windows version also has a Your Systems view that shows all audio and video codecs installed on your system.
For all files, both MediaInfo versions show the resolution, data rate, and QF calculation, which, as with GSpot, is the bits per pixel per frame, again a convenient way to compare data rates for files produced to different output resolutions. The program calculates total bitrate and presents it correctly, but appears to use the video bitrate from the file header, which is the target bitrate and often varies from the actual bitrate. The Windows version of MediaInfo displays the file creation date, but the Mac version doesn't.
For WMV files, the Windows version of MediaInfo shows whether the file was produced using VBR or CBR techniques, a nice data point if you like to experiment. However, the tool doesn't identify multiple bitrate files, or the WMFSDK version (Figure 11).
[FIGURE 11 OMITTED]
Both Mac and Windows versions can analyze Flash files, identifying codec, resolution, and similar parameters, but little else. For MOV files, MediaInfo for Windows is the only program I found that identified whether the file was encoded with CABAC or CAVLC, which is a commonly exposed encoding parameter, but doesn't show the B-frame interval, which would have been useful information to have. Like Semaphore, MediaInfo also provides no information about whether the file is hinted for streaming, or whether it was produced with the Fast Start option.
Though the Mac version is less full-featured than the Windows version, it's the only option I found for analyzing a broad spectrum of files on the Mac, making it a natural for most producers who stray beyond MOV and H.264 files. The tool also reveals enough unique file characteristics on Windows--like VBR/CBR for Windows Media files and CABAC/CAVLC for H.264--to make it valuable for most Windows producers.
Sliq Media's WMSnoop
Sliq Media's WMSnoop does only one thing-analyze Windows Media files-but it does that one thing very well. Throw in the free price tag and it's a must-have tool for anyone who creates, distributes, or even just seriously watches Windows Media (www.sliq.com/ default.asp?view=wmsnoop).
The program has at least three tabs for each WMV file: one for general Attributes, one for Video, and one for Audio. The Attributes tab contains a comprehensive list of file characteristics, such as whether the video is Seekable or Stridable, and, more importantly, which Windows Media Format SDK version was used to create the file. If you're wondering whether the file was encoded with SDK 10 or 11, this is one of the few ways to tell, and the only free one as far as I know.
Each Video tab contains the resolution and target bitrate for the stream, and the level and profile, but not the frame rate, though you can calculate this with information provided in other windows. The Audio tab contains all the expected data, plus it indicates whether the audio file was produced with VBR or CBR encoding. With multiple-bitrate files, one tab details each audio and video stream, which you can't get elsewhere at any price. You can see this on the left in Figure 12.
[FIGURE 12 OMITTED]
If you click the Snoop Details button shown on the left in Figure 12, you're rewarded with the graphic view on the right. You can gauge the variability of the data stream, identify I-frames (those tall yellow frames on the lower right) or view the size of any frame in the file. I've used this to visualize the differences between VBR and CBR encoding, to compare third-party encoding tools, and to see how the bitstreams encoded by third-party vendors compares to that produced by the Windows Media Encoder. You can also determine if an encoding tool is inserting key frames at scene changes, another valuable quality control metric.
Considering the price and utility, if you're a Windows Media producer who can't afford to spring for Semaphore, downloading this tool is a total no-brainer. If you're working with multiple bitrate files, WMSnoop provides specifics about the multiple streams that even Semaphore can't provide.
That's it. I'm sure there are some tools out there that I've missed. If you know of any, particularly any that provide features not available in the tools that I've mentioned, please let me know.
Jan Ozer (email@example.com) is a frequent contributor to industry magazines and websites on digital-video-related topics and is the co-author of Hands-On Guide to Flash Video(Focal Press).
Table 1--General Characteristics of Streaming File Quality Control Tools General Features QuickTime Pro Gspot OS Mac/Win Windows Cost $29.99 Free Open multiple instances Yes Yes Drag and drop Yes Yes Export text reports No Yes Integrated viewer Yes No Visual analysis No No Batch process No Yes Configurable alerts No No Inlet Semaphore General Features MediaInfo Windows XP OS $995 Mac/Win Cost Yes Free Open multiple instances Yes Win-yes/Mac-no Drag and drop Yes Yes Export text reports Yes Yes Integrated viewer Yes-Multiple No Visual analysis Yes No Batch process Yes Win-yes/Mac-No Configurable alerts No Sliq General Features WMSnoop OS Windows Cost Free Open multiple instances Yes Drag and drop Yes Export text reports No Integrated viewer Yes Visual analysis Yes Batch process No Configurable alerts No Table 2--Universal and Codec Specific File Information Analysis Features QuickTime Pro GSpot Video Codec/Rez/Data Rate/Frame Rate/ Y/Y/Y/Y Y/Y/Y/not WMV Audio Codec/Data Rate/ Channels/Sample Rate Y/Y/Y/Y Y/Y/Y/Y File Creation Date No Yes Dropped Frames No No Quality Metric No Bits/Pixel-Frame I-, B-, P-Frame Analysis No No Flash Codec N/A Yes VBR versus CBR N/A No VP6-E versus VP6 S N/A No Windows Media VBR versus CBR N/A No Multiple Bitrate N/A No WMFSDK Version N/A No Tweaks N/A No H.264/MOV VBR versus CBR No No Codec Vendor No No Codec (AVC versus MPEG-4) Yes Yes Profile/Level No No B-frame Interval No No CAVLC/CABLC No No Hinted Streams Yes No Analysis Features Inlet Semaphore MediaInfo Video Codec/Rez/Data Rate/Frame Rate/ Y/Y/Y/Y Y/Y/Y/Y Audio Codec/Data Rate/ Channels/Sample Rate Y/Y/Y/Y Y/Y/Y/Y File Creation Date No Win-yes/Mac-no Dropped Frames Yes No Quality Metric Quantization level Bits/Pixel-Frame I-, B-, P-Frame Analysis Yes No Flash Codec VP6 Only Yes VBR versus CBR Visual-only No VP6-E versus VP6 S No No Windows Media VBR versus CBR Yes Yes Multiple Bitrate Partial No WMFSDK Version Yes No Tweaks No No H.264/MOV VBR versus CBR Yes No Codec Vendor No No Codec (AVC versus MPEG-4) Yes Yes Profile/Level Yes Yes B-frame Interval Yes-Manually No CAVLC/CABLC No Yes Hinted Streams No No Sliq Analysis Features WMSnoop Video Codec/Rez/Data Rate/Frame Rate/ Y/Y/Y/N Audio Codec/Data Rate/ Channels/Sample Rate Y/Y/Y/Y File Creation Date No Dropped Frames No Quality Metric No I-, B-, P-Frame Analysis I- frame only Flash Codec N/A VBR versus CBR N/A VP6-E versus VP6 S N/A Windows Media VBR versus CBR Yes Multiple Bitrate Yes WMFSDK Version Yes Tweaks No H.264/MOV VBR versus CBR N/A Codec Vendor No Codec (AVC versus MPEG-4) N/A Profile/Level N/A B-frame Interval N/A CAVLC/CABLC N/A Hinted Streams N/A