Tutorial: Encoding for Screencams
How did I choose the encoding tools? Premiere Pro and Final Cut Pro are obvious since many folks already own these tools. Note that I only gauged Final Cut Pro’s performance with H.264 because that’s the only codec that comes native with the program. I also wanted to include the homer encoding tools—Expression Encoder 2 for VC-1 and On2 Flix Pro for VP6—since these are produced by the codec vendor and should produce the best results. Sorenson Squeeze and Telestream Episode Pro are the two most popular and up-to-date batch encoding tools that cost less than $1,000, so I threw them into the mix as well.
My goal with each codec was to produce the test file with each encoding tool, compare quality among them, note any outliers good or bad, and briefly discuss the codec-specific encoding parameters for each class. To save time, I focused mainly on getting a good result quickly, modifying default controls as minimally as possible to do so.
As with all encoder comparisons, a poor score doesn’t necessarily mean that the encoding tool can’t produce high-quality video (though I did note some exceptions). Rather, it means that you may have to adjust some controls that I didn’t experiment with or simply encode at a higher data rate than you would with the higher rated tools.
VP6 Encoding
VP6 is a solid choice for Flash encoding, with very good quality and near-universal playback support. There are several wrinkles to consider with Flash encoding. First, note that there are now two techniques for VP6 encoding: VP6-S, which is simple to decode and, therefore, appropriate for high-definition, real-world video; and VP6-E, which offers excellent quality but may be harder to decode. If your encoding tool doesn’t offer a choice, you’re essentially producing VP6-E, which I used for all tests.
Note that if you experience playback difficulties on lower-power computers, you should try VP6-S, which isn’t available on all tools. I produced a VP6-S file with Sorenson Squeeze and found it visually identical to the VP6-E file but slightly easier to decode (about 15% easier on an HP 8710p notebook computer, which is powered by a 2.2 GHz Core 2 Duo).
The second wrinkle is that all Adobe tools offer only single-pass encoding, almost guaranteeing that you won’t get optimum quality. Even at three times the data rate of the Flix Pro file, which was the gold standard, Premiere Pro couldn’t match the files produced by the other encoders. Otherwise, Sorenson Squeeze and Episode Pro were indistinguishable from the file produced by Flix Pro and offered a full range of multiple-pass CBR/VBR encoding with both VP6-E and VP6-S techniques.
Fortunately, there aren’t a lot of codec-specific variables to consider when producing VP6 files, though each encoding tool will throw some unique controls at you. When producing screencams with VP6, follow the general rules I’ve previously defined, and use VP6-E unless your testing indicates that the files won’t play smoothly on your target computers. If this is a problem, try VP6-S.
H.264 Encoding
As I mentioned, the four H.264 encoding tools are powered by three different H.264 codecs: Premiere Pro and Squeeze use the MainConcept codec, Compressor uses Apple’s own codec, and Episode Pro uses the Dicas codec. In general, I encoded at the highest possible quality that the encoder supported, using the High Profile when available and setting all other quality-related options to the max.
Probably the most important configurable item in the H.264 (and VC-1) world is the B-frame interval. Briefly, B-frames can borrow redundancies from the previous and/or next I- or P-frame. In real-world video, they’re helpful, but there’s so much motion (and random noise) between frames that after moving two or three frames from an I- or P-frame, little redundancy exists. In a screencam, however, true pixel-perfect redundancy abounds, which means that B-frames can be wonderfully efficient almost irrespective of distance from a P- or I-frame.
That’s the theory, anyway. To test this, I encoded the test file twice in Sorenson Squeeze, once with no B-frames, next with a B-frame setting of 3, Squeeze’s maximum. The quality disparity was most apparent after dramatic scene changes. Note that the difference wasn’t this significant throughout the respective videos, just after dramatic scene changes. Accordingly, in configuring all of the encoding tools, I used the highest B-frame setting available, which was usually 4 or 5.
Companies and Suppliers Mentioned