Our annual test of the leading desktop encoding programs.
The ideal streaming encoding tool should provide great quality, blazing performance, a discrete set of critical encoding parameters, and a range of other time-saving automation and input/output options. We all know the names—Adobe Media Encoder, Compressor, Squeeze, Episode (in its many flavors), and Expression Encoder—so how do they stack up against this ideal? Glad you asked, because that’s what we’re going to explore.
Contents
Encoding Organization
Specifically, I’ll analyze desktop programs that cost less than $1,000 or so, leaving higher-end enterprise tools such as Rhozet Carbon Coder and Telestream Episode Engine for another day. I’ll take a codec-by-codec look at each encoding tool (H.264, VP6, and WMV), focusing on quality and performance, and I’ll present the results separately for both Mac and Windows computers.
Since these tools offer a variety of automation and I/O features, I’ll present these as well, but in a single group because three of the programs—Adobe Media Encoder, Sorenson Squeeze, and Telestream Episode Pro—are available on both Mac and Windows platforms with an identical feature set.
For quality tests, I changed both test file and test parameters from those I’ve used in the past. The new test file comprises clips from stock footage company Artbeats and from independent producer Connie Simmons of SimmonsArt, from her award-winning PBS series Landscapes Through Time With David Dunlop. My old test clips comprised DV, HDV, and AVCDH footage often shot under less than ideal conditions. I wanted to step up the quality of my starting point, and I’d like to thank both Artbeats and Ms. Simmons for supplying their high-quality clips. Since some of the source clips lacked audio, I filled in the blanks with a track from the always-handy SmartSound collection.
In previous years, I tested SD and HD files at very aggressive parameters. While this definitely revealed qualitative differences in the encoding tools, the differences may not have been relevant to most readers. For example, last year’s HD test used 720p video encoded at 800Kbps, while YouTube distributes its 720p video at 2Mbps, a data rate 2.5 times higher. Sure, this created plenty of quality differences, but would producers encoding at normal rates see the same results?
So this year I encoded using the same basic parameters as CNN, 640×360 resolution, 29.97 fps at 735Kbps video and 64Kbps mono audio, using constrained variable bitrate encoding with peak bitrate set to 2x target, or 1470Kbps. I used these parameters for all of the quality and performance tests, encoding to the codec-specific parameters discussed in each section. While the qualitative differences weren’t as dramatic, hopefully they are more relevant to the day-to-day encoding performed by most streaming media professionals.
To complete the procedural picture, I fed each encoding tool a file that was prescaled to 640×360 progressive format, so all the encoder had to do was encode. I could have input the original HD test file, but that would have involved many more variables, including scaling and deinterlacing quality, which was more than I could bite off for this article.
Meet the Candidates
I tested the most recent version of each encoding tool that I could obtain (Table 1). For Adobe Media Encoder, this meant version 5.0.1.0 on both platforms. With Apple Compressor, it was version 3.5.3. For Microsoft Expression Encoder 4, I tested version 4.0.1650.0. With Sorenson Squeeze, I tested a beta version of Squeeze 7 (7.0.0.68 Beta), while with Episode Pro, it was version 6.0.2.476.
Regarding Episode, note that there are three versions: Episode ($495), Episode Pro ($995), and Episode Engine ($3,995). Episode supports the fewest high-end formats and encodes each file one at a time, or serially, which is the least efficient technique, particularly on multiple-core computers. Episode Pro can input and output more professional formats such as MXF, GXF, IMX, and MPEG-2/4 Transport Streams; it can also encode two files in parallel. Engine can encode as many files simultaneously as you make available in the preferences, which is usually limited by the number of CPU cores on the system. I tested Episode Pro, encoding two files in parallel during multiple file encoding trials.
Let’s start with quality and performance testing, starting on the Windows platform.
Quality and Performance Testing
With each file I tested, I checked file size to ensure that the encoded bitrate was within 5% of the target encoding parameter listed previously. Then I checked the files for dropped frames in Inlet Semaphore, played them back in real time to check for motion artifacts and audio/visual synchronization, and loaded the files into an Adobe Premiere Pro sequence for both still-frame and real-time playback comparisons.
On the Windows platform, I tested using an HP Z800 with two 3.33 GHz six-core Nehalem Xeon processors, 24GB of RAM running 64-bit Windows 7, and an NVIDIA Quadro FX4800 graphics card. I ran Mac benchmark tests on a Mac Pro running Snow Leopard with two 2.93 GHz quad-core Nehalem Xeon CPU with 12GB of RAM and an NVIDIA Quadro FX4800 graphics card. Don’t draw any conclusions about Mac versus Windows encoding speed based upon the results presented here because of the configuration differences between the two platforms.
Windows Testing—Test Parameters
In H.264 testing, I set quality options to the max, which meant the highest supported profile, CABAC-enabled, and the like, enabling B-frames and using a B-frame interval of three with five reference frames when these controls were available. I used two-pass encoding for Sorenson Squeeze rather than multipass because I saw little or no quality difference between the two alternatives, and it shaved about 50% off the encoding time. Squeeze 7 also enables GPU acceleration of H.264 encoding, which I did not use because the quality was noticeably degraded as compared to CPU-only encoding, a situation that Sorenson is aware of and plans to resolve. Whenever quality versus encoding time options were available, I used the highest possible quality option.
With VP6 testing, I used two-pass VP6-E encoding (when available) with quality options set to maximum. With Windows Media, I used the main profile, when available, and the advanced profile when it wasn’t. With Episode, I tried both profiles and used the main profile, which produced better quality than advanced. When a program made B-frame interval available, I used an interval of three.
Table 2 shows the results of the qualitative testing.
At a high level, there were no showstoppers—the quality of all the encoding tools at the test parameters was at least good. With H.264 and Windows Media, however, Episode Pro was slightly behind the other encoding tools in quality. The difference was potentially more serious with H.264, where—very infrequently and only at major scene changes—Episode Pro quality took a few moments to catch up. You can see this in Figure 1, which is the first scene of a major scene change on my old test clip.
How serious is this problem? On my old SD test clip, which has 42 scenes that cut straight from one to another with no dissolve or other transition, it occurred once. In the new test clip, which has 26 test clips, each separated by short dissolves, it didn’t appear at all. So it’s not surprising that the problem didn’t crop up during Telestream’s prerelease quality control testing.
Interestingly, this is the same exact problem that Sorenson experienced when it first implemented the MainConcept codec in Squeeze, which it resolved about 6 months after it was first noticed. Telestream is aware of the problem and expects to resolve it in early 2011.
Otherwise, VP6 results were too close to call, leaving performance as the main differentiator for VP6 producers. With that crafty segue, let’s look at performance.
Windows Performance
For performance testing, I rendered the new 3:10 (minutes:seconds) test file once, recorded that time, and then encoded the same file eight times. I configured each program for maximum encoding efficiency, opening up eight simultaneous encoding slots in Squeeze and two in Episode Pro.
For programs that didn’t encode in parallel and could run multiple instances, I loaded eight instances and ran the test again. I used this technique for all tests with Expression Encoder. Interestingly, Squeeze can encode H.264 and VP files in parallel, but not Windows Media, which it encodes serially, so I loaded eight instances of Squeeze for multifile Windows Media encoding trials. To complete the picture, Adobe Media Encoder encodes all files serially and can’t open multiple instances.
Several numbers jump out at you, though none in the H.264 realm, where results are pretty close (Table 3). If you’re a high-volume VP6 producer using Adobe Media Encoder, you obviously have better options. And if performance is critical, Squeeze is your best choice. Those producers who encode Windows Media files should consider using Expression Encoder, though Squeeze is a close second and offers more formats. With both programs, learning to use multiple instances is key to achieving the fastest results with a high-performance, multiple-core workstation like the HP Z800.
Now let’s turn our attention to the Mac.
Mac Quality Testing
On the Mac, we lose Expression Encoder as an option but gain Apple Compressor (Table 4). As much as I like Compressor, however, H.264 quality is decidedly subpar. For this reason, I included another option—producing
in Compressor using the x264 codec via the x264Encoder plug-in from MyCometG3. The plug-in is free, and it produces much higher-quality video than Compressor’s native H.264 codec.
Otherwise, my comparisons revealed few bombshells, with Episode’s H.264 and WMV quality slightly behind that of the quality leaders. VP6 encoding quality was very close, with very little differentiation among the different tools.
Mac Performance Testing
Mac performance testing was similar to Windows—configure for maximum encoding efficiency and test multiple instances when available. For Compressor, this meant enabling Qmaster with eight instances and encoding via the cluster.
As on Windows, H.264 encoding times were very closely grouped, with Adobe Media Encoder’s exceptionally fast single-file encoding time making it even faster than tools with parallel encoders (Table 5). If the quality of the x264Encoder didn’t convince you to move away from the lower-quality Apple codec, it’s nice to know that it’s faster than Apple’s own native codec as well.
There were some anomalies, most notably Episode Pro’s multiple file H.264 encoding time, which was slower than encoding serially. Unlike my quality concerns, Telestream could not verify this issue, and performance on its test machines was closer to what I saw with Windows. Given the sheer number of editing and encoding tools on my poor Mac Pro, it’s a wonder it runs at all, so I would assume that eight-file encoding time for Episode Pro would be 10 minutes or less if my Mac was running properly.
As with Windows, VP6 encoding performance showed the most variance, and high-volume encoders should choose wisely. Squeeze looks to be the best choice for Windows Media encoding, with the best quality and performance.
But all this is merely prologue for the features discussion yet to come, as sometimes a critical feature or two can outweigh a 20% performance advantage either way.
Automation and I/O Features
In Table 6, I tried to isolate features that enabled encoding automation or improved system input/output capabilities. For example, a watch folder on a network is a great way to share encoding capabilities with other producers who have access to the folder. Adobe Media Encoder, Sorenson Squeeze, and Telestream Episode let you create watch folders within the program itself.
NVPC listed in the Apple Compressor and Microsoft Expression Encoder columns stands for Not Via Program Controls, which means you can create the desired feature via AppleScript or another approach, but not in the program itself, which is obviously easier for nontechnical users. Similarly, the ability to retrieve a file from a remote FTP site is valuable in many scenarios, and it’s a rare feature enabled via program controls only in Episode Pro.
If you’re primarily encoding videos produced in Premiere Pro or Final Cut Pro, it’s convenient to encode a timeline without rendering an intermediate file. You can do that with each suite’s respective encoding tool, of course, but also with Sorenson Squeeze, via Exporting Using QuickTime Conversion in Final Cut Pro, and from Adobe Media Encoder for Premiere Pro. While you can’t yet access Squeeze from within Compressor, Sorenson is working on a Compressor plug-in for delivery sometime in 2011. Speaking of Compressor, note that Episode 6 isn’t available from within Compressor, unlike Episode 5, which was. So you’ll have to create an intermediate file from Final Cut Pro to encode in Episode Pro (you always had to do this from Premiere Pro).
Nothing is more frustrating than sitting around waiting for multiple files to encode, particularly when you have CPU resources close by lying idle. Cluster encoding lets you share encoding tasks among various computers with the program installed; Apple Compressor and Episode Pro both offer this feature, though you must have the programs installed on each computer in the cluster to share encoding chores.
Once encoding is complete, you want to move the encoded file to the distribution workflow as quickly as possible, which can be tough with long encodes that might finish long after closing time. Features such as the ability to deliver via FTP or to specific content delivery networks automate this function. Squeeze stands out here, with custom publishing options for Akamai, Amazon Web Services, Limelight, Twitter, Sorenson 360, and a generic (and easy to find) FTP upload option, as well as YouTube upload and Email/Text notification.
Other Features
Beyond automation and input/output, there are other features that will prove invaluable to some (but not all) producers, and I’ve tried to highlight those in Table 7. For example, both Expression Encoder and Episode Pro let you easily attach intro and outtro videos to your encoded files, which is great for branding or advertising. If you’re working with film-based content that has been converted to NTSC, telecine removal lets you convert back to the original 24 frames, resulting in a file with 20% fewer frames to encode.
Other features are more user-specific. As you would expect, Microsoft Expression Encoder has some unique Silverlight-related features, such as Silverlight player templates and the ability to apply Silverlight DRM to the encoded files. Adobe Media Encoder can insert Flash Cue Points during encoding, a convenient mechanism for adding interactivity to the encoded files later.
On the adaptive streaming front, Expression Encoder provides customizable multioutput templates in both VC-1 and H.264 format that create the necessary .ismv file for chunk-based Smooth Streaming delivery. Sorenson Squeeze 7 has a multiple file, adaptive streaming preset for H.264 encoding. Finally, Adobe Media Encoder now has downloadable presets for Dynamic Streaming, but you have to apply them individually. And if you want to deliver via HTTP-based Dynamic Streaming, you’ll need a separate step to create the necessary F4F file.
Summary
It’s tough to pull this information into a cohesive summary since all the tools have unique strengths and weaknesses that vary in importance depending upon the user and use case. Hopefully, the supplied test and feature-related data will help you identify the performance metrics and features that are most important to you and will help you make a better-informed decision.