Compressionists: You’re Only as Good as Your Tools

I’m reviewing AV1 encoders for Streaming Media Magazine and was performing some QC on the AV1 files that I produced with the latest version of FFmpeg. Two file details I always check are GOP size and whether the GOPs are closed or not. I check these for multiple reasons.

First, FFmpeg doesn’t have the most robust error messaging so it’s easy to mangle a switch (open-gop vs. opengop, for example), and end up with an open GOP. In addition, the test files I’m using have multiple frame rates, including 24, 23.976, 25, 29.97, 30, and 60fps, so it’s incredibly easy to hose the GOP size when you’re adopting your script to the different files. Third, while these configuration options make incredibly little difference to ultimate quality, you want to get these options right when sharing your command strings or encoded files. So, I check.

I started checking a 24 fps file in Zond 265 from Solveig Multimedia ($1,390 for the version with AV1 support) which is the featured image atop this article. Checking for closed GOPs on the right, I saw there were 6 closed GOPs and no open GOPs. So far, so good. Then I noticed that the GOP length was 71 frames when it should have been 48. Ruh-roh.

I started by checking my command strings which looked correct. Then I thought to load the file into Elecard StreamEye 4.0 which I had recently installed as part of Elecard StreamEye Studio (contact Elecard for pricing). This showed the information below. Specifically, though the placement in the stream was frame 71, the frame was displayed as frame 48. 
Mystery solved, the FFmpeg commands work as advertised, and StreamEye saved me countless hours of research and debugging. To be fair to Solveig Multimedia, the Zond tool may have offered the same information in another screen or window, but I had StreamEye loaded and it was easier to simply check there.

These tools are expensive and in many ways targeted more for codec developers than compressionists. But, if you’re going to be working with advanced formats like HEVC, AV1, and soon VVC, you need an analysis tool that can tell you whether your encoder is producing the properly configured output. Otherwise, you’ll be flying blind which is uncomfortable even if you won’t be publishing your results.

Though I only understand about 5% of what these tools can tell me, it’s an absolutely critical 5%, and I couldn’t do my job effectively without them. I’ll be experimenting more with these tools as I start encoding with different AV1 codecs and may come back with additional tidbits.

About Jan Ozer

Avatar photo
I help companies train new technical hires in streaming media-related positions; I also help companies optimize their codec selections and encoding stacks and evaluate new encoders and codecs. I am a contributing editor to Streaming Media Magazine, writing about codecs and encoding tools. I have written multiple authoritative books on video encoding, including Video Encoding by the Numbers: Eliminate the Guesswork from your Streaming Video (https://amzn.to/3kV6R1j) and Learn to Produce Video with FFmpeg: In Thirty Minutes or Less (https://amzn.to/3ZJih7e). I have multiple courses relating to streaming media production, all available at https://bit.ly/slc_courses. I currently work as www.netint.com as a Senior Director in Marketing.

Check Also

Single-Pass vs Two-Pass VBR: Which is Better?

Let’s start this article with a quiz regarding how the quality and encoding speed of …

My FFmpeg-Related New Year’s Resolution: Document Before I Test

My typical workflow for testing-related articles and reports is to create the command string, run …

Transcoding UGC: ASICs Are the Lowest Cost Option

The predominant use for ASIC-based transcoders like NETINT’s Quadra Video Processing Unit (VPU) has been …

Leave a Reply

Your email address will not be published. Required fields are marked *