Update (4 February 2014):
Yes, I know, I was (almost) completely wrong with my forecasts, but not about the technical features of Flash, rather about the capacity of Adobe. 1.5 year after this blog post, Adobe changed their strategy completely (it was not the first time) and decided to give up on flash for mobile and flex. Indeed, they have abandoned completely their developers community (I call this madness because we are talking about 4-5 million at that point, and still today they are around 3 million flash devs). But what I must say is…Flash has struggled to survive even if “betrayed” by it’s own creator. Now after 2 years from the Adobe’s change of mind (and 4 years from this post), Flash continues, incredibly, to be the number one platform for video streaming. Continues to be the main platform for advertising, continues to be present in 99% of desktop PCs (over 1 Billion computers), continues to be used for complex web apps like Car Configurators. It has lost the market share of “dynamic” sites but has gained or consolidated the browser game market. Top 10 Facebook apps are all done in Flash (hundreds of millions users daily) and 175.000 mobile apps are done in AIR for iOS and Android. Probably not the bright future I’d like to see but rather distant from a sad demise. Not bad for an abandoned technology and the prove that HTML5 was (and is still now) distant from being mature.
Yes, it’s not a mistake. I meant just that. I’m tired to read sentence like: “HTML5 is the Flash-killer”, “Flash is obsolete”, and so on. So I’m here to give my 2 cents about the diatribe “Apple vs Adobe” or better “Flash vs HTML5”, and explain why, in my opinion it is much more likely that FP 10.1 will kill HTML5 than the opposite.
I state that I have a Mac Book, a number of Windows based desktops and laptops and an iPhone and for different reasons I’m very happy with each of them especially with iPhone which I consider a real revolution in mobile. You know that I’m a video specialist so I’ll focus on video topics.
THE “STATUS QUO” PRIOR OF FLASH PLAYER 10.1
Flash is a great technology. Almost 15 years of success in enriching the web experience can’t be denied also considering the various pseudo-developers that have always abused of it creating detestable and invasive advertising or used the “worst practices” in web developing to feed a certain bad reputation of Flash.
But how deny the power of a platform that allows you to:
– execute general purpose code in AS3: a fast (compiled), clean and powerfull OOP language.
– access microphone and webcam for realtime AV applications or augmented reality.
– manipulate bitmaps, vector graphics, audio, video, text, xml, binary data.
– communicate via RTMP, HTTP, AMF, SOCKET to a wide range of server side technologies.
– develop graphic oriented apps using CS4 or user friendly RIAs using FLEX.
– support H263, VP6, H264, AACv2, MP3, Speex, NellyMoser’s Asao, MP3, FLV, MP4…
– create p2p applications, realtime applications (FMS).
– support to 3D, image filtering, post-processing (pixel bender).
– etc. etc. etc.
And all that on Windows, Mac, Linux both in the browser and on desktop (AIR), further more a subset of features is also available for mobile (Flash Lite 3).
Contrarily to common beliefs, a lot of technologies used by Flash are open, for example: SWF, FLV, M4V, AMP, Spark, Speex, H.264, RTMP (specifications and files format).
Believe me: Flash platform is HUGE.
Nevertheless we all know that Flash experience, especially for video playback, has not been always and everywhere perfect. The vast majority of problems are on Mac but also Windows Vista introduced a number of minor glitches compared to Windows XP. Watching HD video on Mac is a real problem, especially in a Safari’s window and this is in my opinion one of the main causes of the recent disaffection (in some case adversity) for Flash.
Indeed Video on Internet is the new frontier and thanks to Flash (75% of video is delivered using it) today we are surrounded by every day better and bigger videos. So Why on earth my HD videos require only 40% of CPU on a “BootCamped” Windows XP and saturate complately the CPU on OS X ? Naturally the Mac users want a solution and until then they will blame Flash for not being able to offer a flowless experience regardless of the real cause (read this explanation on why this happens by Tinic Uro).
But there are two new open fronts: the explosion of mobile devices, and the future explosion of Internet-On-TV devices.
After the advent of iPhone everything is changed in mobile: everybody wants multi-touch, geolocalization, accelerometers, easy-of-use, modern audio and video codecs, efficient access to Internet, and so on. And this not only on iPhone but on any smart phones platform that is trying to rip the iPhone leadership (Android, Symbian, RIM, Maemo, WM7 or WebOS).
This leads us to the “No Flash on iPhone” issue. Flash 10 has not been designed to run on mobile, it requires more processing power and more memory, it has no access to advanced mobile features (multitouch in-primis) on the other hand Flash Lite 3 can not compensate this situation in the high end market. But at the same time a lot of content on the web is delivered using Flash and is a problem that an high end smart phone is not able to show videos or animation, living an ugly blue box where on desktop there’s a gorgious user experience.
A Flash fall-back, this could be now HTML5 in my opinion and not certainly a Flash-killed, as someone is depicting it:
– it is only a draft, and apparently far away from standardization.
– it has already proven to be subject to conflicts of interpretation and standardization, for example about the video codec to support.
– it offers only a very small subset of functionalities compared to Flash.
– it uses JS which is a pain in terms of debugging and performance.
– it offers no protection at all for source codes.
– it is not supported now by IE.
– FF support only Theora video codec which is very far from H.264.
So summing up the “status-quo”, today we have 3 screens on which users are exploring Internet and Videos: Desktop, Mobile and TV.
Flash is present on more than 98% of desktops, and is the “de facto” standard for video delivery. Desktops are dominated by Windows 80% and Flash performs very well on Windows with some possible area of improvement. Mac has a 15% share. On it Flash could and should perform better. But why abandon Flash for HTML5 on Mac ? It’s better to ask and push for a solution of problems than duplicate the development and loose the features and the control that only Flash can offer.
FlashLite is too limited to substiture completely Flash, and iPhone does not support Flash for various, political & technical reasons, so here you can be forced up till now to see at HTML5 as a fall back for animation, bitmap manipulation and video.
Internet connected TV and setTopBoxes
A new market that require a platform for video delivery. Would it be HTML5 ?
THE INTRODUCTION OF FLASH PLAYER 10.1
Fortunately Adobe has worked hard in the last two years anticipating the needs and trends of the market. It has mobilitated the most important companies in the Internet, Mobile and Electronic markets to create the Open Screen Project to bring Flash literally everywhere: Mobile devices, Set Top Boxes, Media Players, TV sets. The first, long awaited, fruit of this effert is Flash Player 10.1.
Here I don’t want to comment on the number of new interesting features, but only about the phylosophy of this new release:
Provide a full FP10 experience with a player optimized for low processing power, memory and battery consumption.
I understand that the success of this joint effort can break the dream of egemony of someone else, but should excite us, final users, because not only Flash is obiquitous on desktop, but will be obiquitous on any Internet connected devices assuring a concrete user experience to everyone and everywhere.
The desktop version (Mac and Windows) of Flash Player 10.1 is in public beta 3, so very near to final release, while the Android version is in private beta but very near too. In a few months we will able to experience full FP10 contents also on WebOS, WM7, RIM and a number of set top boxes.
Let’s take a look at these videos:
Today we are already able to test what is changed on the desktop with FP10.1, simply installing the beta 3 from the Adobe site.
TESTING FLASH PLAYER 10.1 ON WINDOWS AND MAC
I have tested the Flash Player 10.1 beta 3 with various SD and HD contents and on various SO and the results are surprising:
1. On windows XP (the most diffused OS at work) there have always been very little problems but now on a Core 2 Quad @ 2.4Ghz I’m able to watch at full screen on a 24” Monitor a Full HD video consuming below 20% of CPU. With FP10.1 the performances on IE (7 or 8) and FF (3.6) are very close now while with FP9 and 10, FireFox required usually a 10% more CPU power for decoding HD. And all this without HW acceleration of H.264 which is supported by FP10.1 but only with the right combination of GPU.
2. HD playback on Windows Vista was sometimes problematic with FP9 and FP10 both on IE and FF, expecially at Full Screen, but now the performance of 10.1 is very smooth both at full screen and in window, and in any browser (IE, Chrome and FF). On a 2.1 GHz Core2Duo Sony Vaio the decoding consumes around 40% of CPU and is perfectly smooth (again without H.264 HW acceleration).
3. Windows 7 64bit performes very well and on a Mac Book (2.2 GHz Core2Duo) with BootCamp, the decoding of HD requires less than 30% (Probably because of HW Acceleration on Nvidia 9400M). With the new 10.1 any sporadic frame dropping and glitches in full screen playback disappeared.
4. And now let’s analyse the performance of my Mac Book with Snow Leopard. With the latest official release of Safari and FP10 it was a mess. My HD videos stuttered if played in Safari’s window but in full screen played very smoothly, nevertheless it was a critic condition.
Following the instruction of Tinic Uro, I have installed the latest nigthly build of webkit and Flash Player 10.1. The performance improved considerably !. No more dropped frames in Safari even with video enlarged. Very good Tinic! This is what we needed.
Ok, there is only a save of around 20% of CPU and again I don’t understand why the same clip on the same HW requires 30-40% on Windows and 80+% on OS X but at least it is an improvement.
So what about HTML5 for desktop ? FP10.1 improves consistently desktop experience in video playback with low CPU and perfect playback in Windows and a 20% improvement on Mac. When the supported GPUs will be more diffused the CPU usage will be even lower and right now ION based NetBooks (prior of FP10.1 very problematic) can decode HD without problems (read this review of GPU accelerated H.264 decoding in Flash 10.1 by Anandtech).
So, what advantages can bring HTML5 on desktop ?
I have tested it with Safari on my Mac Book, and with Chrome and FF on Windows (IE doesn’t support it yet).
Decoding a SD video in YouTube using HTML5 in Safari requires around 20% processing power, the same video around 35% with Flash 10.1 and Nigthly webkit, not so distant now. On Windows 7, Chrome requires only 5-6%, on the other hand, FireFox 3.6 is not supported at all by YouTube HTML5. The Flash version of the same video requires only 7-8% on Windows 7 in any browser.
I have tested also this HTM5 Play (SublimeVideo). On Mac the CPU usage is around 40%, the typical consumption of Flash on Windows with the same HW…perhaps in the future Apple will be so kind to expose to Flash Player the same H.264 decode path used by HTML5.
Then I have tested Sublime HTML5 player using Windows XP on a QuadCore 2.4Ghz. The decoding of the HD video sample on FireFox uses the Theora Codec (H.264 is not supported by FF) requiring 55-60% of CPU with a very poor full-screen experience (dropped frame) and poor video quality. Chrome performed much better with a 25% in window and 55% at full screen (24” Monitor).
Concluding the test: HTML5 is not competitive at all against Flash Player on Windows, while it is competitive on Mac. Obviously it is also the only solution for viewing video on iPhone.
Flash Player, until now, might have problems because of performances on Mac and because of the lack of support in the mobile market. But now with the 10.1 for desktop and with the future diffusion of 10.1 on almost all mobile plaftorms (except iPhone) plus the new set top box rising market, where are the problems ? I see only a bright future for Flash, and HTML5 not only will not kill Flash, but it risks even to remain killed itself in the competition. The scenario is clear:
85% of desktop are served very well by Flash Player 10.1 (Windows).
15% of desktop are served but with sub-optimal performance (Mac & Linux).
70+% of smart phones will be served soon by Flash Player 10.1 (RIM, WM7, WebOS, Android, Symbian and a wide share of medium level phones will be supported by FlashLite4)
So what does remain to HTML5 ? little more than the iPhone & iPad’s market, as a fall-back for the lack of Flash Player…