By Jan Ozer, producer of Critical Skills for Final Cut Pro Streaming Producers

A while back I shared some playback performance numbers comparing the required CPU horsepower to play VP6, H.264 and VC-1 files. Briefly, in that test, I tested playback from the desktop using the FLV Player, QuickTime Pro and Windows Media Player, respectively.

While testing for my next training DVD, Critical Skills DVD for Final Cut Studio Streaming Producers, I rethought the test, deciding that it made more sense to test using the Flash and Silverlight Players, since that's how most of the audience would view these files. In this lengthy report, I'll detail the procedures and describe my findings.

To ensure that the test was fair, I contacted Kevin Towes from Adobe and Ben Waggoner from Microsoft. I produced the VC-1 file in Expression Encoder 2 using parameters supplied by Ben, and the H.264 file in Sorenson Squeeze using the MainConcept codec. I produced using the High Profile with all quality options set to the max, since this would create both the highest quality file and a file that was the most difficult to decode.

I produced VP6-S and VP6-E files in On2 Flix Pro. I produced all files at 1.6 mbps VBR in 720p configuration (29.97) and we used Inlet Semaphore to analyze the files and make sure that their maximum data rates were similar, since Be was concerned that extraordinary peaks in any file would present excess decode number.

Ben actually produced the Silverlight Player that I used in my test for reasons I'll explain later. You can download the bits he created at www.doceo.com/silverlight/SL_player.zip. I used a stock skin from Adobe Flash CS3 for the Adobe player. You'll note if you play the files that the features map evenly, with similar controls on both players. I uploaded all files to my own web site, www.doceo.com, where they exist until this very day.

Silverlight: http://www.doceo.com/silverlight/test.html
H.264: http://www.doceo.com/h264/test.html
VP6: http://www.doceo.com/flv/test.html
VP6-S: http://www.doceo.com/flvs/test.html

I tested playback on the computers identified below using the following procedures:

- Stopping playback of the files and making sure the file was fully downloaded before playing
- Resizing the browser so that the player was fully presented with no other windows above any portion of the browser
- On Windows systems, I played the file, then recorded the total CPU utilization every second for the duration of the file (about 93 seconds). If the utilization figure didn't change from second to second, I recorded it separately each second (you'll see what I mean if you try this). Then I divided this by the number of samples to produce the average CPU utilization.
- On the Mac, I set Activity Monitor to report once every two seconds, and then captured and reported the average CPU utilization for just the browser.

Here's what I found:

 

Flash VP6E

Flash VP6S

Flash H.264 - High

Silverlight

 

 

 

 

 

PowerMac Dual 2.7 GHz PPC G5, OS 10.4.11, FireFox, Flash Player 9.0.115.0, SL 1.0.30401.0

 

 

 

 

Processor (percentage of 2 processors)

72.0%

66.3%

85.8%

108.0%

Drop frames

No

No

Yes

Yes

Estimated frame rate

Full

Full

5-6 fps

1-2 fps

Drop audio

No

No

Yes

No

HP xw4100, 3.0 GHz P4 with HTT, Windows XP, FireFox Flash Player 9.0.124, SL 1.0.30401.0

 

 

 

 

Processor

54.6%

51.5%

45.1%

52.5%

Drop frames

Yes

Yes

No

No

Estimated frame rate

25 fps

27+ fps

Full

Full

Drop audio

Yes

No

No

No

iMac, 2.0 GHz Core 2 Duo, OSX, Flash 9.0.124.0, SL version 1.0.30401.0

 

 

 

 

Processor

87.5%

91.7%

NA

NA

Drop frames

Yes

No

Yes - stopped

Yes - lost synch

Estimated frame rate

2 fps

Full

stopped

1 frame/3 seconds

Drop audio

Yes

no

Yes

yes

HP 8710P, 2.2 GHz Core 2 Duao, Vista, IE, Flash 9.0.124.0, SL 2.0.30226.2

 

 

 

 

Processor

51.9%

52.0%

34.8%

47.3%

Drop frames

No

No

No

No

Estimated frame rate

Full

Full

Full

Full

Drop audio

No

No

No

No

Dell Precision 390, 2.9 GHz Core 2 Duo, XP, IE, Flash 9.0.124.0, SL 2.0.30226.2

 

 

 

 

Processor

22.7%

17.5%

7.7%

26.0%

Drop frames

No

No

No

No

Estimated frame rate

Full

Full

Full

Full

Drop audio

No

No

No

No

Observations

On the Windows platform, H.264 Flash was always less computationally intense than VP6. On the Mac, the situation was reversed, though I was testing with either older or low power current Macs. I'd be interested if anyone out there with a beefier Mac could run these tests and supply some details.

- VP6-S, which is supposed to be the easy to decode version (think VP6-S for simple) wasn't consistently easier to decode than VP6-E (think VP6-E for excellent). On the two lower end Macs that I tested, however, VP6-S was the only format that played at full frame rate with no audio breaks. On the xw4100, VP6-S played smoothly and without audio breaks, while VP6-E played fewer frames and suffered several audio breaks. If I was producing HD video and I cared about older Mac and Windows computers, I'd strongly consider VP6-S.

- H.264 was never required a higher CPU% than Silverlight, but the difference never mattered. On all computers where one codec failed, the other failed as well. One thing that I learned during this process was that while Windows Media Player does play back using the graphics card CPU (or GPU), Silverlight doesn't. For this reason, it's not as efficient as Windows Media Player.

- The skin used to create the Silverlight plug-in can dramatically impact the CPU required to play the file. For example, the first Silverlight player I created (using a template from Expression Encoder 2), which you can try here (www.doceo.com/SL/SL.html) required 78% of the CPU when playing back on the HP xw4100, compared to 52.5% for the Silverlight player that Ben created. In particular, note that all templates from the Expression Encoder are scalable by default, and scale the player window according to browser size. Given that the Silverlight Player doesn't use the GPU, I wouldn't use an EE2 template for HD content.


If you find this information useful then I highly recommend you check out Jan's latest publications Critical Skills for Final Cut Pro Streaming Producers