Mobile Flash a Lesson in Disappointment

| News

Adobe has been promising Flash Player for mobile devices for some time, and now that a version is finally available for Google’s Android 2.2 platform, it seems the company has failed to deliver. While the player can handle videos that have been reencoded for mobile devices just fine, it stutters, chokes and stalls on Flash video content encoded for desktop and laptop computers, according to LAPTOP.

Flash Player 10.1 comes pre-installed on the Droid 2, a new smartphone that runs Google’s Android 2.2 operating system, marking the first time what Adobe is calling a full-featured Flash Player for mobile devices is not only available, but is also ready to go without any downloads out of the box.

Thanks to the Adobe Flash Showcase, available in Google’s Android Market, Droid 2 users can see some great examples of Flash Player at its best, complete with smooth movies and great images. Moving outside the showcase examples Adobe presents, however, reveals a very different Flash-on-smartphone experience.

LAPTOP found that streaming Flash-based TV shows from many Web sites, such as CBS.com, were jerky and choppy, although still viewable. Other sites, however, such as Fox.com and ABC.com, failed to load shows and returned errors.

The problem appears to be that in order for video to stream smoothly — or in some cases, even at all — the Flash content needs to be reencoded for mobile devices. Unfortunately for Adobe, one of the features the company touted with the release of Flash 10.1 was that the same Flash video files would play equally well on desktop computers as well as mobile devices.

Flash-based games didn’t fare much better. Many games simply aren’t playable on mobile devices with touch interfaces because there isn’t any way to duplicate keyboard and mouse actions. LAPTOP’s findings proved that Apple CEO Steve Jobs was right when he said that Flash code has to be modified to work properly on touch-based devices.

“Most Flash websites need to be rewritten to support touch-based devices,” he said.

Flash performance on the Droid 2 doesn’t bode well for Adobe’s argument that its multimedia plaform should be supported on all devices, nor will it help convince Apple to allow Flash playback on the iPhone, iPod touch and iPad.

The two companies were publicly sparring earlier this year over Apple’s stance that Flash Player doesn’t have any place on its iOS-based devices. Instead, Apple is supporting HTML5 and CSS3 for Web interfaces and streaming media.

While Flash Player 10.1 for Android looks to be a good start in bringing the “full Flash experience” to mobile devices, it may be too late. Developers that find they have to reencode their Flash videos for yet another device may be more likely to jump ship to HTML5, and those that have to rewite their apps to support touch interfaces may look to other platforms, too.

That’s exactly what Mr. Jobs has been expecting, and it seems that it’s Adobe that’s proving him right.

Sign Up for the Newsletter

Join the TMO Express Daily Newsletter to get the latest Mac headlines in your e-mail every weekday.

31 Comments Leave Your Own

xmattingly

Adobe’s CEO has been reported to have softened the rhetoric against Apple quite a bit, recently.

Honestly, I’d love for Adobe to deliver on its promises and get Flash working well on mobile. But on the technical issues, it seems like what they’re up against cramming 10 lbs. of crap into a 5 lb. bag. The expression “eat crow” does come to mind though.

John Molloy

If you mean by softened “we’re done with Apple” then yes.

Lee Dronick

“because there isn?t any way to duplicate keyboard and mouse actions”

Maybe they could use some sort of Wii type of controller. You hold the mobile device in one hand and do jerk off actions with the controller hand.

Bosco (Brad Hutchings)

Funny, I just pointed my Nexus One to abc.com and got clips to play fine. This morning, I’m on a low-end cable modem and WiFi.

Jeff, you make a point about developers having to reencode Flash videos for another device… Problem with that is that to support HTML5 on the desktop, you already have to encode in 2 formats, H.264 and Ogg. Smart phone screens are typically smaller anyway. If you’re delivering a 720p video to a smartphone, you’re already using 3x - 4x the bandwidth and making the smartphone resize frames, which will drain more battery.

Flash on Mobile gives you compatibility with what’s out there. For example, there are tons of games on Kongregate.com that work great in Flash Mobile. Yes, some/many might need to be updated to work with keyboard-less devices, but updating is a heck of a lot easier than writing from scratch. And new apps can be written that scale between mobile and desktop, sharing common code typically used for accessing web services and the like.

ctopher

Here’s a great interview with flash developers: Apple vs. Adobe: What Flash Developers Have to Say

On question asked was:

Were you alarmed by Apple’s announcement that the iPad would not support Flash?

A sample answer:

No, Apple has a history of not supporting 3rd party compilers. It’s why their stuff is always rock solid from a UI/functionality perspective.

@Bosco is always reminding us that Apple is always changing it’s APIs and one developer echoed that sentiment with his answer to that question. But in the end… well here’s what he said:

Yes, I was and I am still alarmed by Apple’s announcement not to support Flash .... I have invested vast amounts of time, resources, knowledge, sweat equity, and money into building Flash based websites ..., it makes me wonder if I put “too many eggs in one basket” .... With that being said… my own personal motto/mantra in life is “evolve, adapt or go extinct”.

Too true!

Nemo

It was just this past Saturday that Adobe’s CEO, Shantanu Narayen, was telling the Telegraph just how wonderfully Flash 10.1 would run on all Android 2.2 (Froyo) devices,  saying that Adobe had move beyond Apple and that i0S devices are irrelevant, because Flash is ubiquitous.  See http://www.telegraph.co.uk/technology/apple/7945715/Adobe-chief-Shantanu-Narayen-believes-he-doesnt-need-Apple-or-the-iPad.html.  Well, Mr. Narayen is right about Flash being ubiquitous.  He just forgot to mention that it is ubiquitous only in being a misery for users, OEMs, and makers of mobile OSs, because it is poorly suited to the modern Web and to the constrained processing resources of mobile devices.  It is because of Flash’s ubiquitous miserable user’s experience, except for Bosco, that Flash will over time be supplanted by the modern, open-source, and much less expensive tools of HTML5, Javascript, and CSS, and the video codec of your choice.

As for Mr. Narayan, shame on him, for he had to know, when he was spouting off to the Telegraph, that Flash didn’t deliver on Adobe’s promises of an efficient and well functioning plugin for viewing all content on the Web on mobile devices.  Hell, Adobe hasn’t even manage to make Flash work well on desktop and laptop computers, which is why all my browsers have Flash blockers on them.

Well, perhaps Adobe will get Flash working next year, when the industry moves to dual core ARM processors in mobile devices.  But even if it does, why would any OEM or maker of a mobile OS want to have to suffer Flash and devote large amounts of computing resources to accommodate Flash’s tremendous resource overhead?  I know that Apple certainly won’t do it.

Bosco (Brad Hutchings)

Nemo, Flash on my Nexus One is stored in 12.52 MB space. I am running the South Park Avatar creator (a Flash app in the browser) and the browser is using 7.32 MB of RAM. Closing that window, and back to Settings, the browser now shows 7.15 MB of RAM being used.

I get the Apple chest thumping, but it would be better if you actually were working with facts grin.

vasic

Problem with that is that to support HTML5 on the desktop, you already have to encode in 2 formats, H.264 and Ogg.

Ogg??? Why??? H.264 works perfectly well in Flash-free environment (such as QuickTime, AVI, etc). You don’t really need a Flash container of some kind in order to display video on the web, just like you don’t need a Flash container to display pictures (although there are tons of sites out there doing both).

The point is, once you build your web content using standard HTML5, CSS3 and JavaScript, there is no need to re-encode video for mobile platforms. All the platforms will play the video equally well, resizing it as needed to fit the display. There won’t be any middleware run-time platform sucking away processor cycles and slowing down playback of tha tvideo.

vasic

Vast majority of Flash content on the web depends on mouse-over events for navigation and main functionality. For all this content you must use a mouse. No mouse - no functionality. So, what good is a Flash implementation on a (multi)touch screen, when you simply have very little use for it?

Peter

The experience from Laptop is accurate, but it doesn’t tell the whole story.

Flash Player on Android will play desktop videos on your Android phone with no problem.  However, downloading a desktop-sized video will obviously take longer than downloading one designed for the phone’s screen.  Thus, the display is choppy because it is waiting for data.  iPhone users can experience the same choppiness by downloading large MPEG4 videos and playing them on their iPhones.

This is as “Bosco” points out above—if you use WiFi, the experience is fine.  Furthermore, my boss has an HTC EVO on Sprint’s 4G network and loves to show off Flash videos playing on his phone to anybody with an iPhone.

You will want to re-encode your Flash or MPEG4 video for mobile devices mostly because of slow network speeds—not due to any shortcoming with Flash.

Bosco (Brad Hutchings)

Ogg??? Why??? H.264 works perfectly well in Flash-free environment (such as QuickTime, AVI, etc). You don?t really need a Flash container of some kind in order to display video on the web, just like you don?t need a Flash container to display pictures (although there are tons of sites out there doing both).

Vasic, How about talking about what you actually know about? 10 points to anyone who can explain to Vasic why you need to support Ogg if you’re gonna got HTML5. 20 points to explain to Vasic why you should still re-encode for mobile screen sizes, although that answer is in one of my above posts. Nemo, this is your chance to redeem yourself.

EDIT: Peter claimed the 20 points as I wrote the post.

b9bot

The point of this story is Steve Jobs got it right, flash sucks on mobile devices period, end of story.
HTML 5 is the answer and more and more sites are switching.

Bosco (Brad Hutchings)

Aw screwit. No points for anyone but Peter. Vasic, go look at Firefox’s marketshare. That’s why you need to reencode with Ogg. When you have an understanding of how HTML5 actually works, I’ll continue the discussion.

Nemo

Dear Bosco:  The South Park Avatar app is, I believe, one of the apps mention in Laptop as being re-engineered for Flash 10.1. 

However, let me address two of your other points.  Browser supporting the new standards, which I will call HTML5, can use any video codec or simultaneously use several of them, such as Chrome does.  Today. H.264 is the dominant codec; followed by Ogg, which is free, and Google has its new codec, which is free but which may have legal problems.  Today, if a developers goes with H.264, he knows that his video will run on IE, Safari, Flash, and Chrome.  Google’s new codec, which I have forgotten the name of, runs on Chrome, Firefox, and, I think, Opera.  Ogg runs on Firefox, Opera, and, I think, Chrome.  In any event, a developers who wants the best coverage goes with H.264, because that is what Flash, IE, Safari, and Chrome supports. 

And by the way, having to choose a codec is not eliminated by developing in Flash.  Flash could have chosen any of these codecs, but it has chosen, in addition to its own native codec, to support H.264, so if you’re a Flash developers or, if you want the broadest coverage in browser market share, you go with H.264.

And your other point about about making a smartphone resize frames.  A developer friend of mine informs me that the iOS SDK has that covered, so that an iOS device can resize efficiently without causing a problematic drain on an iOS device’s battery.  But you must use the iOS SDK, and not a Flash cross-compiler, to develop your app to benefit from the iOS’s efficient resizing.  I guess that is just another reason for Apple to forbid the use of cross-compilers on its iOS devices.

Bosco (Brad Hutchings)

You almost got your 10 points, Nemo, until this sentence: In any event, a developers who wants the best coverage goes with H.264, because that is what Flash, IE, Safari, and Chrome supports.

Wrong. A developer who wants the best coverage will encode in both H.264 and Ogg. Just like a developer who wants to have videos played efficiently on mobile devices will re-encode for mobile screen sizes. Doing so saves bandwidth and CPU cycles. That applies whether you use Flash or HTML5 to deliver video. If, in addition to video, you want interactivity, the best technology available for that is Flash, because it runs consistently and performs consistently on platforms it supports.

Nemo

Dear Peter:  The reviewer for Laptop did an A/B comparison of the same web content on 3G on the same Droid2, but with one instance of that content coded, download, and played back in HTML5 and the other instance of that content coded and played in Flash.  The HTML5 worked fine for the same web content on 3G, while that same content on Flash fluttered, sputtered, or even died.  That can’t, therefore, simply be the result of slow downloads on 3G causing Flash to fail or perform poorly.  That is Flash failing because of its own deficiencies, which Steve Jobs won’t tolerate on Apple’s iOS devices, at least not when much better technology is readily available in HTML5.

Mark Hernandez

We need to separate out “the unsuitability of mouse-oriented sites for the touch environment” from this discussion. 

Few people back then saw the touch generation coming and designed their flash content assuming there will always be a mouse, and then left that content behind and will never return to update it.  That huge pile of outdated FLASH content will always be there forever and ever.

Adobe has no more responsibility in making that old content work with the touch generation than HTML5 and CSS have for making old ugly websites from the 90’s look and work better.

Commenters also need keep in mind that FLASH offers two very distinct things…  playing video, and playing programmed app-like interactive content.  HTML5 can supplant the first, but not the second. 

It’s unfair to let these distinctions get smeared in the discussion. 

Furthermore, CEOs are like politicians.  If it were possible to take FLASH and make it run like a native app Adobe would have been able to do it, but now it’s clear beyond a shadow of a doubt that they, too, designed FLASH to assume desktop computing power, and won’t be able to undo those assumptions, just like early web developers did with interactive FLASH content. 

Perhaps the Adobe CEO has no alternative but to pull a “John Boehner” and say one thing when we all see something quite different with our own eyes.  Perhaps he has no choice but to hope for 2Ghz mobile processors and better batteries “off the record.”

It’s easy to be upset about not making things work the way we want, but we have to understand that there isn’t any realistic way to change what’s already been done. 

San Diego is full of “mishmash architecture” and strip malls that will NEVER EVER look good no matter how much you wish for it, and assigning blame is fruitless.  They just didn’t know.

Mark Hernandez
The Information Workshop

Bosco (Brad Hutchings)

And your other point about about making a smartphone resize frames.? A developer friend of mine informs me that the iOS SDK has that covered, so that an iOS device can resize efficiently without causing a problematic drain on an iOS device?s battery.? But you must use the iOS SDK, and not a Flash cross-compiler, to develop your app to benefit from the iOS?s efficient resizing.? I guess that is just another reason for Apple to forbid the use of cross-compilers on its iOS devices.

Nemo, this is far more complicated than you realize. First, you have to decode the large frames, then you have to shrink them. So you’re phone might be processing 4x as many pixels per time unit to play 720p video on its screen. Considering that video playback is quite CPU intensive on mobile devices, this is very significant. That even ignores the bandwidth issue, which Peter explains above.

Nemo

My point is that you can encode in either H.264 or Ogg or both.  Encoding in H.264 gets you Flash; it get you IE, which has, I think, about 66% of the market; it gets you Chrome, with has about 7% of the market, and it get you Safari, which has about 5.5% of the market.  Add it up, and you get about 79% of the browser market plus Flash with H.264.  So, if you must choose one codec, choosing H.264 get you, with Flash, well over 85% of the market.  As developer, that will get it done.  However, to get even more you can go with Ogg, which will bring in FireFox with about 25% of the browser market and Opera with about 2% of the browser market.

Well, I understand the iOS SDK handles the whole screen resizing thing and, in addition, unlike Flash, Safari can use HTML5 to handle webpages without resizing.  As for apps, as I said, the iOS SDK has that handled.  As for interactivity, by which I take you to mean interoperability, with other mobile OSs, Apple doesn’t give a damn about that.  If you choose to write for the iOS, the only concern that Apple considers for a developer to make the best apps for the iOS, whether or not it runs on Android or anything else. 

Though I understand that by going to open-source tools, the part of coding that is peculiar to the iOS will be either a superset of subset of the open-source tools, so that developer using open-source tools will have some work to do to run on other platforms, but that work won’t be unduely burdensome or expensive.  And, as I have opined in the past, I think that the iOS SDK will permit third-party tool makers to use open-source standards to make third-party tools for iOS apps, provided that the tool maker uses the open-standards that Apple prescribes and his tools fully support the iOS’s published APIs.  Those same tools could then be either a superset or subset of APIs, as is necessary to support other platforms.  But this is only my opinion; as far as I know, Apple hasn’t clarified this issue.

geoduck

A few weeks ago I was reading about FTC and EU investigations into Apple blocking Flash and whether that was abusive. One thing this report does is hand a huge advantage to Apple. They can simply point to this and say “Look, here is an independent report that shows that we were right. Flash and stuff that uses Flash compilers do not work well on hand-held devices.”

IMO that should end the investigations right there.

ctopher

First, you have to decode the large frames, then you have to shrink them.

I don’t think so. Not if Annex G. of the H.264/MPEG-4 AVC video compression standard is followed.

In that case you do not have to decode 720 pixels per line. Instead, you decode to the number of pixels required.

To my knowledge, there is no technical reason this cannot be done within the flash environment, but I don’t know if they do or do not.

As for ogg video, that’s the format the Firefox uses when using HTML5. As a video encoder web developer type, I typically encode to .mp4, .ogg and .flv. The last I use with a flash video player like JWL or Flowplayer. I wish I could ditch Flash since the scripting of the player has to be separate from the HTML5.

But I wish for a set of standards that every browser will render exactly the same, but I may as well wish for world peace.

I don’t like Flash not because it’s technically inferior, I cannot afford the tools. I use swfMill when I have to, but I stick to jQuery and mootools and such for my interactivity.

I know I could be more productive with Dreamweaver et. al. But since it’s only part of what I do, I make it work with Eclipse and other “free” tools.

Flash is proprietary, and I cannot justify the expense. the fact that lots of Ads are in flash also sullies my view of it. Thus, like most of you, I block flash with impunity and rarely click the little arrow!

[edit]
That’s the web view of things. It also irks me a little that I have to pay to get the iPhone SDK to develop apps. Apple does have some nice developer pages for webkit development though so that isn’t as obnoxious as Adobe.

Nemo

Bosco:  I don’t pretend to understand the resizing issue, but a friend of mine, who develops for a successful online publication just said the iOS SDK has it handled on iOS devices so that it is not the problem that it can be and often is on other platforms.  I am taking his word for it. 

And Mr. Hernandez, I am using HTML5, as a defined term, to include Javascript, CSS, and H.264 or whichever video codec a browser support.  Taken together, which is how I meant it, those HTML5 technologies can or will be able to do anything Flash can do.  The only things missing are DRM, which is important but which I think will arrive in due course, and the maturity and integration of the HTML5 tools, which will also arrive in due course, because there is nothing done in Flash, which can’t be done and done well in HTML5 technologies.

Nemo

But the take away here is that Adobe laid an egg with Flash 10.1, and the egg is rotten and is beginning to stink.

xmattingly

Commenters also need keep in mind that FLASH offers two very distinct things?? playing video, and playing programmed app-like interactive content.? HTML5 can supplant the first, but not the second.

Wrong. You can do ANYTHING with HTML, CSS & Javascript that can be done in Flash. In fact, there are plenty of demos around the web for HTML 5 interactivity.

More accurately than just saying “can’t be done”, would be that Flash still has leverage for two reasons: 1. much more sophisticated development tools, and 2. animation. HTML 5 interactivity is definitely going to go mainstream, but in my guesstimation it’s still several years off.

Look, here is an independent report that shows that we were right. Flash and stuff that uses Flash compilers do not work well on hand-held devices

Excellent point, Geoduck.

David Ryan

Would have really appreciated if Adobe concentrated more on compatibility of 64 bit browsers with Flash player. Adobe is working with Motorola to bring flash player while you still cant install Flash player on 64 bit IE running on a 64 bit Windows… with adobe giving a workaround, to open the 32 bit browser or to use another browser….
 
Sounds ridiculous isnt it?

David Ryan

Would have really appreciated if Adobe concentrated more on compatibility of 64 bit browsers with Flash player. Adobe is working with Motorola to bring flash player while you still cant install Flash player on 64 bit IE running on a 64 bit Windows… with adobe giving a workaround, to open the 32 bit browser or to use another browser.
 
Sounds ridiculous isnt it?

Tiger

Harry, you win one Internet for your post. Because any discussion of Flash on mobiles just about boils down to that.

Have a great weekend!

Ethan

Once again the fact that large high bitrate content has to be encoded/reworked for mobile flash is being used as a knock against Flash. I can go to plenty of sites on my PRE and experience content not designed for the form factor-do i blame the browser or html? No. Yet, you guys convert this into somehow a hit against FLASH. Blame the site for not being current. They could easily sniff the device and give you a page explaining that they have not encoded to mobile friendly bitrates. Do you guys go off on sites that don’t have mobile versions yet?

Adobe published guidelines on what bitrate is good for mobile. They have had a transparent beta program and the OSMF. ABC and FOX haven’t done it. That’s a knock against the content provider not the tech. If they were smart they would have used the Open Source Media Framework and http dynamic streaming and rolled it out as a beta that switched on based on device detection.

You guys are so desperate to move HTML5 to the top and kill Flash that reality is lost. The mature tools for leveraging the technologies to duplicate and replace what you get in Flash Player are non-existent. Until the tools are robust as what Flash has only the entities that can afford a slew of developers and inefficient man-hours will use it.

Cost of entry matters - android and flash have a much lower cost of entry than Apple, html5, or iOS native apps at this point. Especially if your content is already in SWF format.

Also many of you talk about “all these” people clammoring for html5. Most people have no idea what it is (not surprising as it’s still being written) but they do know what Flash is and that it lets them see the stuff they want.

Over the next 6 months content developers will rework their stuff in Flash for mobile (if they care about updating it) and everyone will be happy. iOS users can use what Apple allows and Android users can use what they want.

MacKeeper_fan_Mod

adobe got started too late. 18 months ago they might have had a shot, but now with 100 million iOS devices, a larger number of blackberries and a rapidly increasing android market (where only a small percentage are capable of flash playback) the critical mass is behind non-flash mobile devices. even if flash worked flawlessly it would have a massive game of catch up to play.

Jeremy

Considering that video playback is quite CPU intensive on mobile devices, this is very significant. That even ignores the bandwidth issue, which Peter explains above.

Nope. The bulk of the decoding is done by a low power dedicated h264 hardware decoder. It can do on the fly resizing etc. Flash video is in a proprietary container with drm so there aren’t any hardware decoders like with h264.  So the poor CPU has to use adobe’s software codec. We all know adobe has a great rep for writing efficient fast code wink. That’s why flash is such a battery killer, cpu has to work at full speed to run it.

That’s the real suck about flash video, being a proprietary format, no hardware support. Anybody can license h264 and make a hardware decoder.  Oh sure, adobe has done some work on the desktop to support gpus, but that’s just a bit of tweaking to pass a few calls to the gpu.

gslusher

For another perspective, from an ordinary user, see this review of the Droid 2 on Amazon:

As he put it, when Flash was pushed onto his Droid 2 (perhaps without asking him?), “My phone suddenly became nearly a brick.”

Log-in to comment