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

Tutorial: Encoding for Screencams

Article Featured Image
Article Featured Image

The difference between VP6 and H.264 was much smaller, but as you can see in the figure, where the H.264 text is clear and sharp, the VP6 text is slightly distorted. Overall, if you’re producing screencams for Flash consumption and haven’t considered H.264, now is the time, from both a quality and player-penetration perspective.

Note that you can download all three files on the Doceo Publishing website at www.doceo.com/screencams.zip. If you play them through side by side, you’ll quickly see more distinctions.

Again, you may be locked into a codec decision before reading this article, so I’ll discuss how to produce screencam videos with all three codecs. First, let’s start with a brief look at the universal encoding parameters that you should use with screencam video.

Universal Encoding Parameters
Before starting the codec-specific discussions, let’s examine the encoding decisions that should apply to all codecs, starting with the video side of the equation. For discussion purposes, I’ll use the Windows Media 9 encoding controls from Sorenson Squeeze. Taking the controls from the top, let’s start with Method, which is often called bitrate control: Use 2-pass variable bitrate encoding, as shown in the example, since this allows the codec to vary the bitrate according to encoding complexity, which should improve overall quality.

However, you should use a constrained VBR technique to make sure that your viewers can reasonably stream the file; otherwise, data spikes could interrupt playback. That’s why I checked the Constrain Maximum Data Rate box about halfway down the screen. My rule of thumb is a maximum data rate of 200% of the target, though Waggoner recommended closer to 400% in his tutorial.

I produce all screencams at 15 fps; anything less can appear choppy, and anything more is usually a waste since it won’t be noticed. I use a keyframe setting of between 10 and 20 seconds since more frequent keyframes can degrade quality and cause visible pulsing, or slight screen updates that occur at each keyframe. More importantly, make sure that both forced and natural keyframes are enabled so the encoder will insert keyframes at scene changes, a process that also helps to promote quality.

For audio, I like mono because most screencams are recorded with a mono microphone, so encoding in stereo simply means duplicating the mono signal into both right and left channels and encoding them separately. This doubles the compression ratio necessary to achieve the target, which can degrade quality. Note that saving the file in mono doesn’t mean that your listeners will only hear the audio from one of their two speakers; instead, the player will push the same signal to both speakers in the system.

If speech is the primary content in your audio, 22 kHz should do just fine, as should a data rate of 32Kbps. When available, you should use variable bitrate encoding for your audio; otherwise, the encoder will devote the same data rate to intervals of silence as it will to speech and/or introductory music. If your audio content has significant periods of high-quality music or consistent background music, you may need to boost these parameters further, but these should do fine for most speech-dominated screencams.

Now, let’s move to the codec-specific sections.

Codec-Specific Findings
One consistent lesson of streaming encoding is that different tools will produce varying levels of quality, even when using the same codec. This is especially true with H.264, where four H.264-capable encoding tools use three different H.264 codecs, none of which, presumably, is fine-tuned for screencams, which represent a tiny percentage of streaming video.

Streaming Covers
Free
for qualified subscribers
Subscribe Now Current Issue Past Issues
Companies and Suppliers Mentioned