- Categorized in: Streaming quality control tools
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.
Figure 7. Setting up alerts in Semaphore.
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.
Figure 8. Color codes atop the timeline indicate alerts at those locations.
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 example, in Figure 10, I'm analyzing two files, one producing using VBR (black line) the other CBR (blue line). Which file would you rather stream to a cellular customer?
Figure 9. Comparing the bitrate of two files; one produced in VBR, the other CBR.
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 you’ll need to resort to MediaInfo to figure out whether a file was encoded with CABAC or CAVLC.
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 their shop.