-->
Save your seat for Streaming Media NYC this May. Register Now!

Under the Hood: File Analysis Tools for Streaming Video

Article Featured Image
Article Featured Image

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, 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 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 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.

That’s the quality control angle; now let’s look at Semaphore as a file viewer. 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.

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. You can also examine buffer fullness and frame size. You can also analyze two files at one time.

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."

Streaming Covers
Free
for qualified subscribers
Subscribe Now Current Issue Past Issues