Slashdot videos: Now with more Slashdot!

View

Discuss

Share

We've improved Slashdot's video section; now you can view our video interviews, product close-ups and site visits with all the usual Slashdot options to comment, share, etc. No more walled garden! It's a work in progress -- we hope you'll check it out (Learn more about the recent updates).

Dotnaught writes "In a blog post, Walter Luh, co-founder of Ansca Mobile and a former employee of both Apple and Adobe, recounts how Apple once promoted Flash on the iPhone then changed its mind because Flash didn't provide the optimal mobile user experience. 'I think that Apple came to the same conclusion I've come to — namely that Flash has its strengths, but not when it comes to creating insanely great mobile experiences,' he writes. Luh's piece ends with a pitch for mobile development using the Corona SDK, a Lua-based programming environment that strives to recapture the simplicity of early versions of Flash."

Live streaming using H.264 seemed to work just dandy watching the State of the Union address on my iPhone while using the Whitehouse.gov iPhone app. Also seems to work great with MLB At-Bat on the iPhone as well. I watched many baseball games last season streaming live H.264 video to the iPhone.

What about all the browser applications written in flash? Will we just not have them?

ActionScript is ECMAScript with the Flash DOM. JavaScript is ECMAScript with the HTML DOM. One major point of HTML 5 is to make the HTML DOM as rich as that of Flash, in hopes that the next version of a web application will be written in JavaScript instead of ActionScript. YouTube is one of them; if you're running Safari, Chrome, or IE + Chrome Frame, you can switch it from Flash to HTML 5.

This seems pretty true. In theory x264 can encode content with very low latency[1], and delivering MPEG-4 from previously encoded files is pretty easy, but my search-fu can't find any ready made solution for streaming using RTSP that doesn't involve paying through the nose for the software---although hacking something together with x264 seems very doable.

I don't know about how easy it is with Theora, but it doesn't really matter since it has had no impact on the mobile device market whatsoever.

"Flash has its strengths, but not when it comes to creating insanely great mobile experiences" Nothing really creates insanely great mobile experiences, mobile is far more about functionality then experience because it is such a limiting platform. Most of our clients looking for iphone apps are trying to scale down the full experience to a limited set of core functionality that supports a sometimes connected, highly relevant, supplement to the richer web desktop/laptop experiences.
As much as people want to say that HTML5 richness can keep up with Flash, I've already tried to start some benchmarks to see where the performance gaps are.
http://craftymind.com/factory/guimark2/HTML5ChartingTest.html [craftymind.com]
http://craftymind.com/factory/guimark2/FlashChartingTest.html [craftymind.com]
To give some perspective, the iphone renders the HTML5 test at about 0.5 fps.

As I understand it, Silverlight video uses three separate components: core, video codecs, and digital restrictions management. Moonlight has reimplemented core, and Microsoft distributes video decoders for use with Moonlight [wikipedia.org]. This leaves DRM unimplemented in Moonlight, and DRM is fundamentally incompatible with free software because there is no way to stop the X server from performing analog-hole-like output redirection.

While I agree with you, that is somewhat Apple's fault. On Windows, Flash makes use of hardware decoding for H.264, if available. On Mac OS X, it does not. In Flash 10, H.264 hardware acceleration is not supported on OS X because Apple does not expose access to the required APIs.

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.

Microsoft: H.264 for IE (and they are already licensing it in Windows 7). Will not support Theora.

I haven't seen any official announcements on this yet. That said, the most likely approach IE will take is to just use DirectShow, which means that it'll use whatever codecs are installed on the system - H.264 is in Win7, yes, but you can always install Theora codecs.

Google: H.264 for Chrome (but not for the open source version!).

Isn't it both H.264 and Theora out of the box with Chrome?

Opera: Theora. Could support H.264, but wants Theora more.

The upcoming Opera 10.50 (which is the first stable release to come with HTML5 video support) will use GStreamer for codecs on all platforms. Which means that H.264 support can be added by the user if needed.

Also, flash is an additional layer for the processor to deal with beyond the browser engine itself, lending to extra exchanges of information between browser and flash plugin.

Um... no. Just because Flash is invoked from the browser and rendering within the browser's page doesn't mean that Flash is one layer abstracted from the processor. In fact, browsers (at least Firefox and Chrome) run Flash as a separate process (at least on Linux, which is all I have available at the moment). What this means is that Flash runs as a peer process to the browser... not an embedded runtime. Information exchanges are limited basically to user input (minimal) and graphical output (also pretty minimal relative to Flash's computation and rendering). Flash running within a browser should run roughly as well as Flash running outside of the browser.

Contrast this to Javascript; Javascript is run within an engine embedded in the browser, which means it shares it resources with the browser process. It is also linked intimately with the contents of the browser page, meaning that there's little purpose to outsource its work to another process when most of its work deals with the data stored in the browser. This is more what you are talking about.

Flash does its own thing; Javascript and HTML5 operate within a runtime and are abstracted (at least, initially) from the processor. Optimizations made by Chrome's V8 and Firefox's Tracemonkey engines are intended to bring HTML5/Javascript closer in-line to Flash's domain through various optimizations, but Flash still has the advantage. It's nothing special about Flash; rather, Flash just has the privilege of being detached from the browser, whereas HTML5 and Javascript are intimately integrated with it.

Actually, Flash is doing *much more* than a stand-alone video player, that's why a stand-alone video player will eat less resources.

Mike Melanson, the lead engineer of the Linux Flash Player team explains the technical challenges in his latest blog post, Solving Different Problems [adobe.com]:

The Flash Player has to do a little bit more. In addition to decoding the data, it has to convert YUV data to the RGB colorspace and combine the image with other Flash elements. Then it has to cooperate with another application (web browser) to present the video to the user.

So the dedicated media player solves a problem: Generally, it plays linear media files from start to finish while allowing user interaction in the form of random seeking along the timeline. That's the most basic, trained monkey-type of labor in video playback. At most, the player might handle DVD menus.

Flash Player solves a different problem: It plays linear media files from start to finish while combining the video with a wide array of graphical and interactive elements (buttons, bitmaps, vector graphics, filters), as well as providing network, webcam, and microphone facilities, all programmable via a full-featured scripting language, and all easily accessible via a web browser using a plugin that most of the browsing population already has installed.

You seem to forget that video is not the only thing people use Flash for.