Flash Player: CPU Hog or Hot Tamale? It Depends.

[Author's note: In early May, Apple opened the API for Adobe to access the GPU for H.264 acceleration from within Flash. Click here to view details and some early test results.]
In part, Steve Jobs stated that the iPad didn't support Flash because it was a "CPU Hog," so Apple used a technology called HTML5 instead. Since the comparative efficiency of Flash vs. HTML5 seemed easy enough to quantify, I endeavored to do so, using YouTube's new HTML5-based player as the test bed. Specifically, I played a YouTube video in the same browser twice, once via HTML5, once via Flash, and measured CPU utilization during playback.

By way of background, HTML5 is a new markup language that eliminates the need for a plug-in like Flash to play video. Instead, the browser supplies the decode capability directly. There is no standard HTML5 codec, however, with Apple Safari and Google Chrome supporting H.264 playback (which is required to play back video on YouTube's HTML5 pages), Mozilla Firefox, Opera's Opera and Chrome supporting Ogg Theora playback, and the 800-pound gorilla supporting neither codec (that would be Internet Explorer). All, of course, still support Flash.

Accordingly, the only browsers that could theoretically play both the HTML5 and Flash pages were Apple Safari and Google Chrome. I say theoretically, because in practice, the Windows version of Safari couldn't play the HTML5 YouTube page. To complete the picture, I also tested Firefox and Internet Explorer using the Flash plug-in. I tested on the Mac using a MacBook Pro (3.06 GHz Core 2 Duo, 8 GB RAM, OS 10.6.2) while testing on Windows using an Hewlett Packard 8710w mobile workstation (2.2 GHz Core 2 Duo system running 64-bit Windows 7 with 2 GB of RAM).

Whither Hardware Acceleration?

I spoke with Adobe during my testing to get their thoughts on the procedures outlined below. During our conversations, they let me know that Flash Player 10.1 should deliver substantial performance improvements over 10.0 because it can use the graphic processing unit (GPU) on some computers for decoding video, a capability generically known as hardware acceleration. According to the Adobe Web Site,

Hardware-accelerated H.264 decoding on Windows desktop, notebook, and netbook systems is supported on some video cards and drivers running on Windows XP, Windows Vista, and Windows 7. These include some recent NVIDIA, AMD/ATI, and Intel graphics cards. The player also supports hardware decoding with hardware such as some Broadcom video decoders.

Please read the Flash Player 10.1 public beta release notes (PDF, 105 KB) to learn about supported hardware and find links to download supported drivers. We recommend updating to install the latest drivers available.

In Flash Player 10.1, H.264 hardware acceleration is not supported under either Linux or Mac OS X. Linux currently lacks a developed standard API that supports H.264 hardware video decoding, and Mac OS X does not expose access to the required APIs. The Flash Player team will continue to evaluate adding hardware acceleration to Linux and Mac OS X in future releases.

To be clear, hardware acceleration was available in 10.0, but only when playing in full screen. With 10.1, it's available for all video playback, and in the tests detailed below, I played the YouTube video within the player interface, not full screen. As the Adobe page says, however, the expanded hardware acceleration will be available on the Windows platform, but not Mac and Linux. Mac users don't despair, however, since other Mac-related enhancements, like support for Core Animation, should boost Mac performance.

Long story short, Adobe claimed that there would be a substantial reduction in CPU utilization on both the Mac and Windows platforms with 10.1. So I ran two sets of tests; one with Flash Player 10, the other with 10.1.

My Procedures

During testing, I followed this procedure:
- Turned off as many background processes as possible
- Updated my graphics card drivers
- Used the same YouTube video for all tests (http://www.youtube.com/watch?v=VJ5KJVCc5C4)
- First, I loaded the page
- Then switched the video to 720p, but left the video playing within the player window (not full screen)
- Then waited until the video completely downloaded (watching the little red bar thingie on the bottom of the player).
- Then I played until about 14 seconds in, waiting until the opening sequence cleared and the real world video began playing.
- Then, I started monitoring and recording the CPU Usage on Windows Task Manager and % Idle on Activity Monitor on a separate computer for 29 data points for each test. Since Task Manager updates once each second, that meant about 30 seconds of testing on Windows. Because Task Manager updates once every two seconds, that means about 60 seconds of video playback on the Mac.
- I used the CPU Usage directly from Windows and subtracted the % idle from Activity Monitor from 100% to derive total CPU utilization on the Mac.
- I rebooted between each test.
- I ran each test at least twice to confirm results.

Browsers Tested

I tried to test the most current versions of all programs on both platforms: Here are the versions.

Windows:

- Apple Safari - Apple has a site called Webkit where you can download beta versions of the Safari browser (http://webkit.org/). Since the improvements in Flash Player 10.1 required the latest version of Safari, I downloaded that version - in Windows, it was 4.0.4 (531.21.10).

- Mozilla Firefox - version 3.6

- Google Chrome - 4.0.249.89 (I tried loading the Beta 5 browser, but it failed several times on this computer).

- Microsoft Internet Explorer - 8.0.7600.16385

- Adobe Flash Player - 10.0.45.2 first, then 10.1.51.95

Macintosh:

- Apple Safari - Webkit version was 4.0.4 (6531.21.10,55180).

- Mozilla Firefox - version 3.6

- Google Chrome - 5.0.307.9 beta

- Microsoft Internet Explorer - 8.0.7600.16385
- Adobe Flash Player - 10.0.45.2 first, then 10.1.51.95

Test Results: Macintosh

Table 1 shows the Macintosh results. Some observations.

Table 1. Macintosh results.

  • With Safari, native playback in HTML5 (at 12.39) was the most efficient alternative, and consumed significantly less CPU than playback via Flash (at 37.41), presumably because Apple uses H.264 hardware acceleration inside of Safari (see here). Flash Player 10.1 reduced playback CPU by 5 CPU % points (from 37.41 to 32.07), or about 14%. Before assuming that Flash is bad, and HTML5 good, please see the Windows results below.
  • With Chrome, playback via Flash and HTML5 were equally inefficient, both much higher than either Safari alternative. This is a head scratcher. I would guess that it means that Google isn't benefiting from hardware acceleration, though I don't know if that's because they "can't" or simply "haven't." Either way, Chrome shouldn't be your browser of choice on the Mac for spending serious time on YouTube.
  • With Firefox, playback via Flash (the only alternative) was slightly less efficient than Safari in Flash, but more efficient than Chrome using Flash or HTML5. Firefox actually slowed down with version 10.1.
I asked Adobe about this and Adobe's Emmy Huang commented “The 3-5% improvement on Safari is what we would expect with Flash Player 10.1 on Safari using Core Animation. Firefox performance however was slightly degraded because Flash Player switched from using QuickDraw to Quartz 2D." Now, on to Windows.

Test Results: Windows

Table 2 shows the Windows results. Some more observations.
Table 2. Windows results.
  • As mentioned, Safari wouldn't play the HTML5 videos on Windows, so I have no Flash vs. HTML5 comparisons there (I tested this on three Windows computer and the HTML5 page wouldn't play on any of them). However, Flash's ability to access hardware acceleration in 10.1 dramatically reduced Safari's CPU consumption from 23.22 to 7.43, a drop of 68%, which really makes you wonder how Flash would perform on the Mac if it could access hardware acceleration.
  • While Chrome's numbers were more efficient on Windows, playback with Flash Player 10.0 was about 24% more efficient than HTML5, while Flash Player 10.1 was 58% more efficient.
  • Version 10.1 also dropped Firefox's CPU utilization by a whopping 73% and Internet Explorer's CPU utilization by 35%.
To these scores, Adobe's Huang added "These results also indicate the strong benefits in performance hardware decoding brings for video playback in Flash Player and other technologies.”

Overall Conclusions:

When it comes to efficient video playback, the ability to access hardware acceleration is the single most important factor in the overall CPU load. On Windows, where Flash can access hardware acceleration, the CPU requirements drop to negligible levels. It seems reasonable to assume that if the Flash Player could access GPU-based hardware acceleration on the Mac (or iPod/iPhone/iPad), the difference between the CPU required for HTML5 playback and Flash playback would be very much narrowed, if not eliminated.

I don't follow the politics of the situation, but after noting significant playback efficiencies in Flash Player 10.1 on the Mac, respected technologist and AnandTech founder Anand Lai Shimpi commented "with actual GPU-accelerated H.264 decoding I’m guessing those CPU utilization numbers could drop to a remotely reasonable value. But it’s up to Apple to expose the appropriate hooks to allow Adobe to (eventually) enable that functionality." So it looks like the ball is in Apple's court.

Overall, it's inaccurate to conclude that Flash is inherently inefficient. Rather, Flash is efficient on platforms where it can access hardware acceleration and less efficient where it can't. With Flash Player 10.1, Flash has the opportunity for a true leap in video playback performance on all platforms that enable hardware acceleration.

Turning full circle, if Anand is right, and I don't doubt that he is, Apple complaining about Flash being a CPU Hog while not exposing "the appropriate hooks" to enable Adobe to access hardware acceleration seems disingenuous at best. To be fair to Apple, though, the iPad related timing was unfortunate, with the bulk of the development work done under the shadow of Flash Player 10.0, which didn't offer hardware acceleration other than full screen on any platform and was clearly less efficient than the HTML5-based approach Apple adopted. Now that Adobe has proven the concept on Windows, perhaps Apple will cooperate with Adobe to make hardware acceleration on the Mac, iPad and future devices happen. If they choose not to, however, they should quit pointing fingers at Flash.

What else? We also learned that not all HTML5 browsers/H.264 decoders are created equal. Significantly, with Flash 10.1 deployed, Google's HTML5 implementation required the most CPU horsepower of all playback scenarios -- by far -- on the Windows platform. On the Mac, Firefox and Safari with Flash required less CPU horsepower than Chrome's HTML5 implementation.

At least from a CPU utilization perspective, Flash isn't BAD and HTML5 isn't GOOD. It all depends upon the platform and implementation.

Caveats:

Some closing thoughts. I spoke to Adobe about this test methodology because it was mostly a test about Flash. I didn't contact any other companies because the tests are objective and straightforward. At least they seemed so at the time.

I only tested two computers (one on each platform) because of time constraints. Yes, I know, additional data would have been useful. If you think it would be that useful, don't complain to me, run the tests yourself and share the results. Just to be sure to run the Flash 10.1 tests on a device with supported graphics hardware.

If you see a flaw in the test procedures, don't write to complain without:
- documenting new procedures
- testing yourself
- sharing those results.
I'll be glad to retest if there's a flaw (actually, not glad, but I will anyway).

Finally, I understand that in addition to calling Flash a CPU Hog, Mr. Jobs also complained about crashing with Flash. Instability is infinitely harder to test for than performance, so I didn't even try.

Test Notes:

I tried to load Windows on the MacBook Pro so I could produce both OS tests on one hardware platform, but Bootcamp got persnickety and said it couldn't create a Windows partition. I could have reformatted the MacPro, reinstalled the OS and then tried again, but since I had the 8710w all ready to go, I decided to just use it.

I also tested in YouTube's Feather mode, which, according to YouTube, "is intended to serve YouTube video watch pages with the lowest latency possible. It achieves this by severely limiting the features available to the viewer and making use of advanced web techniques for reducing the total amount of bytes downloaded by the browser. It is a work in progress and may not work for all videos." My tests revealed only a very minor difference between Feather mode and normal mode (about 1% either way) so to keep the numbers to a minimum and streamline the results, I showed only those results from Flash mode.

I ran some additional tests on Vimeo, which tracked the YouTube results with Flash Player 10.0. I didn't run the 10.1 tests because I was concerned that the lack of a mode analgous to YouTube's Feather mode might prejudice the results.

For those interested in a comprehensive look at Flash 10 vs. 10.1 video playback performance, click here for a comparison in AnandTech.


Comments (158)

Said this on 2-27-2010 At 08:40 pm

Thank you for this study.

I would be interested to see how html 5 ogv in firefox compares to the above results.

Said this on 3-11-2010 At 01:49 am

Flash became a software that has been related to Virus and a source of exploitation to your PC
It introduces serious security problems which cannot be fixed by the operating system's developer, Apple. It introduces bugs which cannot be fixed by Apple. It forces Apple to be dependent on Adobe for fixes and updates. It forces Apple to live with crashes, security breaches, and bugs. It makes the operating system unstable. It seriously DRAINS the batteries.
Apple definitely doesn't want to have that problem. That's why they are shifting to HTML5, CSS Animation, H.264 --  Apple can do almost all of what Flash can do without the problems that Flash creates. More details:  http://bit.ly/the-apple-ipad-details
Although, if this rumors are true, I believe Mr. Jobs could use a little silence for the meantime.

Flash became a software that has been related to Virus and a source of exploitation to your PC
It introduces serious security problems which cannot be fixed by the operating system's developer, Apple. It introduces bugs which cannot be fixed by Apple. It forces Apple to be dependent on Adobe for fixes and updates. It forces Apple to live with crashes, security breaches, and bugs. It makes the operating system unstable. It seriously DRAINS the batteries.


Apple definitely doesn't want to have that problem. That's why they are shifting to HTML5, CSS Animation, H.264 --  Apple can do almost all of what Flash can do without the problems that Flash creates


Although, if this rumors are true, I believe Mr. Jobs could use a little silence for the meantime.

Steve
Said this on 3-29-2010 At 10:26 pm

Wow Fanboy,

Did you drink the Steve Jobs kool aid !

Sad for you.

David
Said this on 8-22-2012 At 07:24 pm

I feel sorry for you that you are stoo stupid to form a sentance. Steve Jobs could form a sentance. 

What have YOU done to change the world? Anything at all? Or just taking up space?

Don't worry about people admiring Steve Jobs. Worry about your own life.

Meanwhile, Flash on Intel Macs is a CPU hog. Photoshop can use the GPU, why not Flash? 

Adam
Said this on 8-20-2010 At 09:56 pm

If you are going to post a comment, how about posting one that has anything to do with the topic at hand?

the orginal poster was only giving evidence about cpu useage when it comes to flash and nothing more, while you decided to come in and bash flash on issues that has little to do with cpu usage. At no point was anyone talking about bugs, or that apple can do whatever flash also creates or any of that shit. Did you just come here with the intent to bash flash regardless of what was being talked about?

Next time read the topic before responding to a comment

Said this on 2-28-2010 At 12:01 pm

Thanks for the elaborate test. I'm still very curious about Apple's reasons not to allow flash to decode video on the mac using hardware acceleration. Calling flash slow and a CPU hog seems hardly fair, instead it looks like apple is willingly creating a situation where flash cannot perform well. 

Said this on 3-11-2010 At 01:28 pm

If you do a little research on Apple not letting Adobe access low-level hardware acceleration, the picture is this:

 

1.  Adobe can access the exact same APIs as Apple uses in Safari.  These wrap hardware acceleration in the CoreVideo API.

2.  Apple doesn't allow anyone - not Safari, not Quicktime, not nobody - direct video acceleration access except through its APIs (which Safari and Quicktime use).  The main reason for this is system stability (and a decade of graphics device drivers causing Windows to fall over the vast majority of the time bears this explanation out).

3.  Flash doesn't use those APIs well the vast majority of the time "just in case" the Flash file might need to do random overlays in the middle of the video (ads etc), which are harder to do in the accelerated APIs without being able to "read back" the rendered pixels.  Really, Adobe's complaints are that the APIs Apple provides don't include the read-back feature they have built their stack around.  For what it's worth, Microsoft's APIs don't do this either, which is why Adobe did an end-run around the DirectX stack and petitioned all the graphics device driver vendors to add this feature to their drivers ...  a feature which no one but Flash can use because it isn't a "stable" API.

Said this on 3-12-2010 At 09:11 pm

Hey Tom:

Good info - you have any authoritative links for any of this? Seems to be counter to what Adobe and AnandTech is saying. Doesn't mean that you're wrong, but I'd love to see some corroboration.

Thanks!

Jan

Paul
Said this on 3-23-2010 At 12:07 am

It was discussed in Daring Fireball, the blog of Apple technology pundit John Gruber.

Apple, Adobe and Flash

Flash hardware acceleration

Apple does have a way to let Flash have H.264 graphics acceleration via the Quicktime API, Adobe just refuses to go that way and wants to use lower-level APIs.

Gruber thinks it's a matter of proper software engineering and OS design if third-party plugins like Flash are limited to higher-level APIs and not directly interact with the underlying hardware.

Those links doesn't back up #3 in Tom Dibble's reply though, although I'm fairly certain it was discussed as well on other Apple and Adobe blogs.

adam
Said this on 4-18-2010 At 11:38 am

i'v seen that site. it's a classic "i'm making a fare argument, just ignore my biest." he even admits in one of his posts that he is biest on the hole matter and roots for apple.

apple fan boy, showing resources from a apple fan boy.

it can't work that way.

Flash Player: CPU Hog or Hot Tamale? It Depends.

this is a legit, non biest article, by someone who works withe macs and pc's and has done proper tests. and not just going withe things they think they know.

all people lie, for all i know, adobe may be lieing. but we all know apple is pretty anal, when it comes down to control. and we know there an opinionated company.  and since they don't like flash and are rooting for html5. it don't surprise me if there not giving adobe the acquired APIs, to let flash run more efficient. it will make them look foolish, if it end's up not being the CPU hog they claim it to be. so its in apples interests to not allow it.

this begs the question. what company don't let there custermers have the best solution to CPU consumption? then use them as pawns, so they complain that flash is crap on the mac? which fuels a pointless and unjust hate towards adobe, so html5 looks good!

but like I said, all people lie. adobe may be lieing, but apple may be to. but this scenario fits well, for its in apples interest not to look like a fool, and to stunt the development of flash.

 

Paul
Said this on 4-22-2010 At 08:34 pm

That doesn't make any bloody sense, adam. You didn't debunk anything, you just brought up that people could lie and assumed that the sources provided are lies. You can't have a fruitful argument if your first step is to assume your opponent is in bad faith, and that's exactly what you did.

Anyway, back to the discussion. It looks like Apple is opening up a bit -

Technical Note TN2267: Video Decode Acceleration Framework Reference

Gruber thinks the Video Decode Acceleration framework should assist in Adobe's job of providing hardware acceleration for the OS X port of Flash player. It's available for Mac OS X 10.6.3 and later for the NVIDIA GeForce 9400M, GeForce 320M or GeForce GT 330M.

However upon closer inspection of TN2267, it notes the Video Decode Acceleration framework only decodes video frame data and does not provide video playback or stream parsing capabilities. It also recommends the use of Quicktime APIs to automatically access GPU acceleration for the latter functions.

Jan
Said this on 2-28-2010 At 12:11 pm

Henk:

Thanks for your note. You'd have to ask Apple. As I mention in the article, the iPad was undoubtedy built during a time where access to the hardware was not available. In addition, as Adobe has admitted, Mac performance has historically been poor. Here's a post from Adobe CTO, Kevin Lynch:

Now regarding performance, given identical hardware, Flash Player on Windows has historically been faster than the Mac, and it is for the most part the same code running in Flash for each operating system. We have and continue to invest significant effort to make Mac OS optimizations to close this gap, and Apple has been helpful in working with us on this. Vector graphics rendering in Flash Player 10 now runs almost exactly the same in terms of CPU usage across Mac and Windows, which is due to this work. In Flash Player 10.1 we are moving to CoreAnimation, which will further reduce CPU usage and we believe will get us to the point where Mac will be faster than Windows for graphics rendering.

Video rendering is an area we are focusing more attention on -- for example, today a 480p video on a 1.8 Ghz Mac Mini in Safari uses about 34% of CPU on Mac versus 16% on Windows (running in BootCamp on same hardware). With Flash Player 10.1, we are optimizing video rendering further on the Mac and expect to reduce CPU usage by half, bringing Mac and Windows closer to parity for video.

Personally, if I was Apple, and knew that Flash performed twice as fast on Windows, I'd have a negative perception about Flash as well. 

The big issue is what happens going forward. Adobe appears to have proven the concept of hardware acceleration on Windows. Apple will either proide them with what they need or they won't. If they don't, you're right - it's hardly fair to call Flash a CPU hog.

Thanks again for your note.

Craig Seeman
Said this on 2-28-2010 At 03:23 pm

Technical results always leads me to market speculation for me.

Apple must have a strong motive to push HTML5 H.264 if Flash could be made to work much better on Macs and they don't offer the hooks to Adobe. Maybe Apple is driven by iPod/iPhone/iPad development and just finds Flash is not workable on such devices (in their opinion) so they'd rather have HTML5 all around.

Google is certainly in a strange position given Chrome's HTML5 and Flash performance. I wonder how Android will fair if it supports both. My gut still tells me that they'd benefit from HTML5 H.264 in both as well and that's why I find the performance you found with Chrome odd. You'd think Chrome would have better performance there at this point.

To understand the full extent of this you have to consider the growing smartphone (smartdevice?) market though to think about the motives behind Apple Adobe Google. I know if Apple wants to push hard it makes sense for them wall out Flash on smart devices and ensure a less then optimal experience on desktops.

In short, there's a desire for a single standard be it Flash or HTML5 with Apple pushing on one site, Adobe on the other, Google may be the decider depending on what they believe benefits Chrome and Android.

Said this on 2-28-2010 At 04:25 pm

Interesting thoughts. I guess my reaction is that standards can't be set by any one stakeholder, because their interests are necessarily proprietary.

Folks can criticise Flash, but it plays pretty much everywhere, which simplifies distribution for producers. With Internet Explorer on 60+ % of the desktops, HTML5 has a minority share, which is fractured even further by the lack of uniform codec support, particularly Firefox not supporting H.264.

Speaking of Google, we're getting closer to the day when we know their intentions for VP8. I don't even want to think about what that means.

Thanks for weighing in.

Best.

Said this on 3-12-2010 At 07:43 pm

These are some very interesting benchmarks.  Not in the least because they illustrate that, in the past in this particular use case at least, Flash on Windows was indeed much faster than on the Mac (and based on volumes of experience, the real world seems to agree that it has been thus for a LONG time).  It also illustrates that Adobe FINALLY appears to be trying to remedy this, and may even have succeeded.

From the Apple-Flash argument standpoint, however, let's not forget that Apple also cited Flash's instability as a significant reason for their aversion to using it. They said that Flash was the single largest cause of submitted crash reports, and I'm inclined to believe them based on both personal experience and that they re-did Safari specifically so that a Flash crash would not bring down the whole browser (and I've personally seen that kick in many times, and noted the increase in browser stability).

Given the iPhone/Pod/Pad's "appliance nature, I'm willing to bet that there is little Apple wants less than a crash of any sort. That's part of the reason for its internal draconian app sandbox, among other things.

Second, it's important to note that even if Adobe were largely innocent of Flash's poor performance on the Mac versus Windows, it is a provable, measurable fact that poorly-constructed Flash can easily use 100% of a CPU core. Further, such poorly-constructed Flash files are ubiquitous in web advertising. And without instituting a built-in Flashblock-like mechanism for load-on-demand, I'm skeptical about how much Adobe could do to reduce needless CPU use, even if they tried, since the code within the Flash file is out of their hands.

Given the premium on battery life, and how hard a wasteful Flash animation can hit the CPU, were I Apple I'd have made the same decision, for the same reason I installed FlashBlock on all my computers, particularly my portable ones.

Now, maybe Flash 10.1 includes some code to make garbage Flash only use 5% CPU, but I'll believe it when I see it. And, again, given the ubiquity of web advertising, even a 5-10% CPU hit for every Flash-containing page you have open could amount to a nontrivial battery life reduction.

Whatever Apple says, the problem isn't Flash video, or even Flash games, and never has been.  The problem is that Flash is used everywhere for things that it is completely unnecessary for, by people who could care less if it has some negative impact on their end users. If Apple continues to avoid Flash and, in doing so, forces web advertisers to abandon badly-written Flash ads for something less CPU intensive and more universal, the people WITH Flash will benefit more than the people without.

Said this on 3-12-2010 At 09:27 pm

Hey Marc:

Thanks for your note.

I didn't forget about the instability - as mentioned, I just said I didn't feel like I could test for it.

On your second point, can you point me to any tests that show this? I'm not disagreeing but I'd love to see some tests that prove it.

Interesting thought about Adobe having to deal with poorly constructed Flash files. Perhaps a setting that limits CPU usage? As I mention elsewhere, I think the competition provided by HTML5 and the high profile nature of Apple's declining to add FLash to the iPad will really force Adobe to address the issues that you're raising.

I guess the other point is that it's not like these poorly constructed advertisements are going away - they'll just be converted to Javascript, right? Or some other format? HTML5 video? Who's to say that these will be any more efficient than Flash.

I am not a programmer but my earliest memories of Javascript on my computers were far from positive and I cringe when I see appliances like my blu-ray player relying on Java. We're all assuming that the Javascript that will replace Flash will be inherantly more effiicent - are we sure that will be the case, or that all these hypothetically inefficient AS3 coders will write elegant Javascript? 

Just a thought. Thanks again for writing in.

Jan

Said this on 2-28-2010 At 03:42 pm

Jan,

Excellent Analysis !! It will be a long way to go for HTML5 to impact the web and catch up to Flash's success but fingers crossed. Also, I feel the hardware manufacturers should also make some significant developments and upgrades to match up the performance with the existing softwares out there. With all due respects to Mr Jobs, but one cannot clap with a single hand. They have to work together and  towards what is best for the user..

 

 

 

Said this on 2-28-2010 At 04:28 pm

Thanks for weighing in. I hope Apple does decide to allow Adobe to access the hardware - basically, at this point, there's so little HTML5-based content out there for Safari to play that enabling Flash to perform better would improve the lives of all Mac users, including me.

Craig Seeman
Said this on 3-1-2010 At 12:38 pm

While the "simple" solution would be for Apple to allow hardware acceleration on computers and Flash on "i" devices I think there's more going on which is why I think Google is the player in this.

Google is experimenting with HTML5 H.264 in YouTube. YouTube is the biggest player in video content viewed online and they're not doing this just for fun. To me this means they must be looking at both Android and Chrome because that's the only thing I can think of as a motive.

Apple's a player not because of its computers but because of its "i" devices. Google has already accommodated Apple by supporting "i" devices.

More than likely it's Google looking for a market advantage and they're using Apple's intransigence (support for HTML5 H.264).

Basically I think Google's moves will determine what Apple does. Apple wont change otherwise unless the iPhone/iPad need to change to compete with Android. Add Google's purchase of On2 and Google is clearly in the driver's seat.

The thing to watch is whether Google pushes VP8 for Adobe to support. If that were the case you'd probably see that pop up in YouTube. Otherwise Google supports HTML5 H.264 for computer and handsets and VP8 for Video Conferencing. BTW I don't see the logic in VP8 being "opened" since I don't see the market advantage for Google but that's probably another discussion.

I think Apple will wait to see what Google does and nothing will happen before that. I can't help but think that Google beta testing HTML5 H.264 in YouTube has to be an indicator though.

Said this on 3-11-2010 At 01:42 pm

"While the "simple" solution would be for Apple to allow hardware acceleration on computers and Flash on "i" devices"

I think you underestimate how complex this is.  The device drivers for the graphics cards needed to be rewritten to allow Flash access to hardware acceleration on Windows.  Apple doesn't have the driver support from NVIDIA/etc that Windows does; we're lucky to get what we get.  The market for video cards just isn't there when there isn't a culture of build-your-own-game-machines as exists on the Windows side, and so the video chip makers don't need to compete as heavily on the Mac side.  Most Mac owners get whatever video card is offered on the Mac which fits in their price range by default, never BTO, and certainly never upgrade the video card later on (which is only possible on the Mac Pro line to begin with).  So, NVIDIA's card running Flash faster than ATI's?  No competitive advantage.  The primary consumer (Apple) couldn't care less.

Again, Adobe's efforts on the Windows side weren't really sanctioned by Microsoft either.  Microsoft just allows an end-run around its OS APIs which Apple does not.

Otherwise, I think you're on the money with regards to Google's thinking. :)

 

Said this on 5-13-2010 At 12:33 pm

It was announced in April that it's possible Apple will be opening up access to the GPU.

http://www.slashgear.com/apple-open-nvidia-gpus-fo...

Jan
Said this on 5-13-2010 At 01:16 pm

Ryan:

Thanks for reminding me - just posted a link above to the first round of tests that i did for StreamingMedia.com

Thanks again.

Jan Ozer

Said this on 3-1-2010 At 09:19 am

Just wanted to say thank you for doing these tests. There's enough anecdotal "information" flying around on this issue, and it's terrific to have some real data to look at regarding video playback performance on the various OS, browser and plugin platforms. 

Marco
Said this on 3-2-2010 At 02:14 pm

Jan, what about the WMODEs introduced in the Flash 10.0 player? The 'Direct' setting was supposed to improve video playback. I'm not sure about the the 'GPU' setting, though.

Jan
Said this on 3-2-2010 At 04:48 pm

I've asked my co-author Stefan Richter to weigh in on this. He says:

the following applies to desktop platforms, and I've taken this from the Player 10.1 Beta 3 release notes (this supersedes 10.0)

http://labs.adobe.com/technologies/flashplayer10/releasenotes.pdf

"Hardware compositing (wmode=gpu) has been disabled on desktop platforms only. Hardware compositing in Flash Player 10 improves performance in select cases, but it can decrease performance in others. In addition, driver support varies widely on desktops. Given these complications, Flash Player 10.1 will ignore the wmode=gpu embed parameter and composite graphics in software." "Flash Player 10.1 supports hardware decoding of H.264 video on Windows platforms when running with supported hardware. "

So it seems you do not need to specify a wmode of GPU now. If the Player can use GPU it will - but it can't on the Mac currently, so for your tests it's pretty meaningless, and one cannot compare like for like. 

Did you ever test on Windows in fullscreen using a supported graphics card with Player 10.1 beta 2 or 3? If not then you should try. I saw a big improvement on my little Atom based, Ion equipped Win 7 box.

This is all Greek to me, so if you have any further questions, surf on over to www.flashcomguru.com and ask Stefan over there.

Said this on 3-4-2010 At 09:37 pm

Sorry to say your test are not useful.

Coreanimation only accelerates FLASH, it is not a video hardware accelorator.

Video Acceleration is not available in Flash for OSX/Linux.  This is a limitation in the way Flash uses Video.

"Flash is not a Video Container and does not claime to be"

Flash can do real time transparancy etc and a lot of other cool things to make nice interactive tools.

It is not just a video player, as such, using the typical hardware playback is not possible as, to do so, the Hardware accelerator needs to support a special API, which most do not. (A special colour space conversion that lets the other elements of flash exist over the top of the hardware accelerated video)

Adobe COULD build a special mode to do this but like I said above..

So any tests pertaining to Video performance means nothing on OSX/Linux.

Flash is more then a video container so really the work going into flash is about FLASH as a vector based animation and GUI tool.  THAT IS MUCH FASTER on the, only just now possible as Apple has made the API available in the Browser. "APPLE" actions only just made this possible..

Sorry to say all you Flash haters, Flash performance is all because of Apples actions NOT Adobe, Steve just likes to say crap like, "No one would want to watch a video on a screen that small"..

This is another good example of this mis-direction. He obviously has other reasons for making Flash/Adobe look bad.

Use your head, look at the data.  Don;t be a lemming Apple one eyed zellot.

 

James

 

Eric
Said this on 3-11-2010 At 04:41 pm

Well, you're not completely in truth there.  Hardware acceleration IS available for linux in flash, but last I knew only on nvidia chipsets with pretty new drivers.  It is, however, a supported feature on the linux version of flash, and even says so on their web page, it's just really poorly supported due to most drivers not being compatable with the feature...

I do mostly agree with you on your main point though.  I belive flash would probably perform better in linux too if people would stop trying to make open versions of it and instead work to make the flash plugin work better with the operating system.  That said, I'd still prefer the adoption HTML5 to flash, as I think it's probably got more potential in the future.

Said this on 3-5-2010 At 08:47 am

Not useful? Seems kind of harsh. I learned that:

- If i'm playing youtube videos on the Mac, I'll use safari.

- that I'll avoid Chrome on all platforms until further notice

- that I'll get the Flash Player 10.1 upgrade on all windows computers ASAP.

- that not all HTML5 implementations are more efficient than Flash

I think those are all useful, but one man's meat is another man's poison.

As to your other points, which I'm having trouble understanding, it feels like you think Adobe could address the problem without help from Apple. Perhaps you're right, but AnandTech and Adobe and many others think differently, and I'm buying their view.

Thanks for weighing in.

Jan

Said this on 3-5-2010 At 12:24 pm

This so called article is a joke, im sorry but you could have at least waited until your results were in before allowing Adobe to stick its nose in. This is just bad journalism , i can even see you ignoring apple due to there tight lipped ship but why only let Adobe look over your shoulder, there is Mozilla and Google who make the shell software , why not contact them?

And your test ignored looped play back after download altogather HUH? That’s were most these codecs lockup. Then with all this lame Adobe technobable your conclusion is it depends.

And as for who can fix it....... NO ONE can, lets get real - Adobe/Macromedia is as stuck in there view as Jobs is  in his.  The issue is a corporate culture one not a tech geek one. No band-aids in sight.

Jan when you have to separately bullet point remarks so a computer user can understand it . how really useful was the post?

 

 

Said this on 3-5-2010 At 12:59 pm

Thanks for weighing in.

Jan

Said this on 3-5-2010 At 04:24 pm

Jan- Thanks for doing this.  I don't quite understand why those previous posters are so bent out of shape with your testing and results.  Seemed like a reasonable test scenario to me and one that most people would experience at home.  It was a lot of work to setup and most rational people would appreciate that.

There's got to be something else at stake here besides performance issues.  Apple is intentionally stiff-arming Adobe and at the same time calling them fat and ugly. More than likely its related to Apple's bottom line and market strategy for the App store, not performance issues.

What might be good for Apple's bottom line is bad for Mac users, myself included.  I do know that my next portable device will NOT be an idevice, it will be Android.  - Jeremy

Wade
Said this on 3-5-2010 At 06:54 pm

I am with you Jeremy. I am a bit tired of Steve Jobs and the false and misleading crap that constantly runs out of his mouth. I am a Mac and iPhone guy and will definitely be getting a Nexus One and one of the may tablets that will be running Android.

I may even switch back to Windows with Windows 7 - ugh! However I can't stand it when I watch a video on my MBP, with dual cores and 4 gig of ram, and the fans spin out of control and the heat goes off the charts. Jobs would say that is Adobe's fault, which is plain wrong. It is Apples fault for keeping such a closed system.

Last time Jobs had such a closed system he got crushed by Microsoft and I am sure this go around he will get crushed by someone else - can you say Google :).

Wade
Said this on 3-5-2010 At 07:01 pm

Oh and Jan,

Great article. I am keeping up on this topic and have found your article here to be the most educational. Any of the losers on this page writting negative comments probably work at a company headquartered in Cupertino :).

Also, thanks for your other articles on streamingmedia.com.

Said this on 3-5-2010 At 09:16 pm

Thankee, thankee. Fun article to research and write; I'm glad that you found it useful and appreciate your taking the time to write your notes.

By the way, I abhored Vista (see Death, Taxes and Vista here)" and "Jan Ozer"), but find Windows 7 a lot more tolerable.

Thanks again for your note.

Jan

Jan
Said this on 3-5-2010 At 05:03 pm

Jeremy:

Thanks for taking the time to write - nice to get positive feedback. I agree with you. I'm not an iPhone/iPod Touch user, but I think it's perfectly acceptable for Apple to pursue whatever strategy they feel will maximize revenue, and if that means freezing out Adobe (and they don't lose device sales over it, and it sounds like they might) that's their perogative. I'm also sensitive to the fact that Flash Player was a CPU hog until 10.1.

I did these tests because I was curious whether Mr. Jobs was right, and it turns out he WAS, but after 10.1, is NOT. We'll see if the rhetoric changes.

Thanks again for taking the time to write.

Jan

 

 

Said this on 3-9-2010 At 09:50 am

Great article; thanks for doing all that grunt testing and sharing it here. In terms of the Safari for Windows HTML5 failures: did that test computer have Quicktime installed as well? It might make sense for Safari to leverage the QT H264 decoder for playback.

 

As to the fullscreen hardware support in Flash Player 10.0: to my knowledge FP10 also does not support hardware decoding of H264 video in fullscreen. The only thing it supports in hardware is the upscaling of the video from its windowed resolution to the entire monitor screen (the graphics drawing part). This would imply that fullscreen playback will also get a huge performance boost with FP10.1. Do you know more about this?

 

 

Jan
Said this on 3-10-2010 At 08:20 am
Jeroen:

I don't, but interesting point. The problem is that there's no way to measure CPU load when playing full screen, so it's tough to test for. I think I remember some automated data collection capabilities in Vista that might work with full screen playback; I may see if I can figure that out. In any event, more data coming soon.

Thanks for weighing in.

Jan
Said this on 3-10-2010 At 04:48 pm

To measure CPU load when full-screen - just SSH into the Mac and use the Unix command line tool Top.  That's the same data that goes into Activity Monitor.  I don't know a Windows equivalent but it probably exists.

Jan
Said this on 3-10-2010 At 09:19 pm

Thanks for the tip. I think there is a Windows equivalent. If I retest, I'll check it out.

Best. Jan

Said this on 4-12-2010 At 05:20 pm

Jan, can you explain that statement, "there's no way to measure CPU load when playing full screen"?

Task Manager displays a history graph that can be used to approximate past CPU utilization; there is also an optional "CPU time" column in Task Manager's "Processes" tab that can serve the same purpose, and might be even more accurate.  For more sophisticated performance tracking, you can use Windows' "PerfMon" (Performance Monitor) which can measure and log CPU utilization and non-idle time.

(thanks for doing the benchmarks - very helpful)

Jan
Said this on 4-12-2010 At 08:10 pm
Alex:

Thanks, I've heard for perf mon - is that a GUI based app, or command line?

What about on the Mac? I probably could have made things easier with some research, but you know how it is - when you're ready to go, you're ready to go.

Thanks!

jan
Said this on 4-12-2010 At 10:10 pm

It's GUI - right-click on "my computer", "Manage" -> "Reliability and Performance" -> "Monitoring Tools" -> "Performance Monitor".

Also, "perfmon.exe" from Comman Line, or type "performance" in the Start Search box, it will show up.  There are tons of parameters, and I think the one to look at is "% Processor Time".

Dunno for the Mac... :)  It's UNIX though, I am sure there is something there, if it's command line only.

Said this on 4-13-2010 At 07:06 am

Alex:

I used performance monitor in my tests. Just didn't know how to see the CPU % numbers if the video was full screen. Best case, Performance Monitor would lay over the video, which could skew the results. I know there's a Vista (perhaps Win7) utility that collects CPU utilization over time for you - I thought that's what you were referring to. Absent a similar utility on the Mac, I wouldn't be able to measure full screen playback CPU load.

Please let me know if you track down that Vista/Win 7 utility.

Thanks!

Jan

Said this on 3-10-2010 At 11:07 am

Finally an objective study, with no flames nor wary statements! Thanks for sharing!

Jan
Said this on 3-10-2010 At 09:17 pm

Cesare:

Thanks for the complement and for stopping by.

Jan

Said this on 3-10-2010 At 11:49 am

Thanks Jan

 

I found the results in text a little difficult to compare. I'd be happy to produce a chart for you if you send me the CPU figures, and any further figures that get sent your way. Just send me an email if you think it would be useful.

phil
Said this on 3-10-2010 At 12:32 pm

I think the issue apple has with flash is not just video playback. On the whole flash is buggy and still a bit of bloatware - probably a hangover from its roots. There is more issues here than just simple cpu clocktime with video.  I can see from a webstandard/developer point of view to have most of what flash now offers avalible in html/css has huge advantages especially if its there in the browser. (excluding certain browsers which don't want to play nicely in the playground).  If this pushes adobe to slim down and fix flash than thats no bad thing but with the likes of youtube embracing html5 they are going to have to start to work a bit faster.

 

 good to see someone trying to do a realistic study though

Jan
Said this on 3-10-2010 At 09:15 pm

Hey Phil:

I think it's a complex issue and I appreciate your offering your opinion.

Jan

Do
Said this on 3-10-2010 At 01:57 pm

I was tested the HTML5 video in vimeo and youtube. CPU usage is very different.

Jan
Said this on 3-10-2010 At 09:08 pm

Hey Do:

Would love to hear more details about your tests and conclusions.

Thanks for contributing.

Jan

Post a Comment
* Your Name:
* Your Email:
(not publicly displayed)
Reply Notification:
Approval Notification:
Website:
* Security Image:
Security Image Generate new
Copy the numbers and letters from the security image:
* Message: