Dec 05, 2012 (09:12 AM EST)
How Online Video Works: Flash Very Much Alive
Read the Original Article at InformationWeek
For some Web producers, the technologies selected to deploy video is driven by religious zeal, which was evident when Apple launched the Flash-less iPad to the joy of plug-in haters everywhere. HTML5 went from obscurity to top of mind, and Flash was declared dead on dozens, if not hundreds, of websites.
A more pragmatic view focuses on the viewers the website is seeking to reach, identifies the required features of the video presentation, and chooses the best technology for the job. That's the approach we'll take in this review. Since the capabilities and technologies are different for desktop and the increasingly important mobile market, I'll analyze the desktop and mobile markets separately, and briefly touch on Windows 8. Let's start by identifying the most relevant video-related features.
The world is dividing into two types of video technologies: Those provided without a plug-in, such as HTML5 video playback, and those provided via plug-ins such as Flash. I'll use Flash as my example of a plug-in-based technology because it's the most widely deployed -- although in most instances Silverlight offers equivalent functionality.
When streaming to desktop browsers, virtually all video is delivered within the browser, as opposed to separate applications. On the iOS and Android platforms, you can deliver video to the browser or via apps, which are often used to enable advanced features that might not be supported by browser-based playback. For this reason, I'll also include features deliverable via apps created with Adobe Integrated Runtime (AIR), which is a technology that enables developers to deliver Flash video on platforms like iOS and Android that either don't run the Flash Player or don't offer a current version.
Streaming a single file to a remote user is a pretty basic task that, depending upon the playback platform, can be accomplished via Flash or HTML5, or via Adobe AIR applications. Complicating HTML5 playback is the fact that not all HTML5 browsers support a single video compression technology, or codec. Playback of the H.264 codec via HTML5 is supported in IE9 and IE10, and most of the installed base of Safari and Chrome, totaling about 80% of HTML5-compatible browsers. Chrome also supports the WebM codec, as does Firefox and Opera, totaling about 40% of HTML5-compatible browsers.
Although Mozilla has made noises about supporting H.264, it has not done so for its desktop browser versions, both because it would require significant license fees and violate its policy of not supporting encumbered technologies. So to deliver a single stream to all HTML5 compatible browsers, you'd have to encode into two different formats, WebM and H.264.
Adaptive streaming technologies encode multiple iterations of the same source file and deliver the highest quality file that the remote viewer can retrieve and play. If you're watching on your connected TV via high speed broadband, you might retrieve a 1920x1080 stream at 5 Mbps. If you're watching on a low-power netbook connected via 3G, you might retrieve a 640x360 file at 800 Kbps.
There are three technologies that can or will enable adaptive streaming.
As a practical matter, supporting multiple adaptive streaming technologies, like Flash and HLS, is simple to accomplish via streaming servers like the Wowza or Adobe Media Server that can "transmux" a set of adaptive files from one adaptive format to another. Specifically, these products rewrap the compressed streams into the container formats used by the respective adaptive formats, and create any required metadata files.
Supporting additional adaptive streaming technologies when they come online, like DASH, will likely be a simple matter of configuring your streaming server to do so, since all servers that transmux will certainly support DASH once generally available. For this reason, while convenient, the promise of a unifying standard like DASH won't be a life-changing event for most streaming producers.
One of the key deficits in the HTML5 specification is the lack of live streaming, though this should be addressed by DASH when generally available. Until then, to stream live, you must use a technology like Flash or HLS.
Digital Rights Management (DRM)
Digital rights management technologies enable content owners to protect their content, and include techniques like encryption and SWF Verification. Both Flash and HLS offer DRM, and DRM will be incorporated in DASH implementations once they reach the market. However, today, there are no HTML5-only DRM technologies -- if you want to protect your content, you can't use HTML5.
Closed captions are already required for many broadcasters, educators and government agencies, and many other organizations might use closed captions to enhance the search engine optimization of their videos or benefit their hearing-impaired visitors. Closed captions are available with Flash and HLS, but the only HTML5-compatible browser that currently supports closed captions is Apple Safari. Again, if you want to supply videos with closed captions to HTML5-compatible browsers, you'll have to use Flash or HLS.
Multicast is the ability of multiple computers to access and play a single video stream, which is very efficient in networked environments that otherwise would have to distribute a single unicast stream to each viewer. Although many technical requirements complicate large-scale multicast streaming, it's obviously highly desirable for enterprises and other large organizations with lots of desktops on a shared LAN.
Multicast streaming was made available for Flash streaming via the Flash Media Server 4.0 and later versions. Multicast under HTML5 is not yet under serious discussion and is not a feature of HLS.
Peer-to-peer (P2P) distribution allows any node on a network to serve as either a server or client respecting other nodes on the network. In video playback applications, once a single node on a network has retrieved video content, they can share that directly with other nodes, so the other nodes don't have to retrieve the video from the original source location.
Like multicasting, P2P can be very efficient in the enterprise space, and is available as a feature of the Adobe Media Server. P2P under HTML5 is not yet under serious discussion and is not a feature of HLS.
With this as background, let's turn our attention to the desktop and mobile markets.
There are three categories in the desktop market as shown in Table 1. These include legacy browsers that don't support HTML5, HTML5-compatible browsers with the Flash Player installed, and HTML5-compatible browsers without Flash installed.
Legacy browsers, no HTML5 support
This group primarily includes those still using pre-9 versions of Internet Explorer. As of Dec. 1, users of IE 6-8 included about 32% of all users as measured by NetMarketShare, with a few percentage points of other legacy browsers also in this category.
An HTML5-only approach without fallback to Flash would not reach any of these viewers. As you can see in Table 1, Flash does a nice job supporting these viewers, enabling both single-file and adaptive streaming and all the advanced features. Or, if the website uses an HLS compatible player like the JW Player, HLS will also deliver adaptive streaming, DRM and closed captions.
Table 1. Desktop markets and video-related features.
HTML5-Compatible Browsers with Flash Player
The next market includes users with HTML5-compatible browsers and the Flash player installed, which comprises about 60-65% of all viewers. Statistical website StatOWL shows Flash penetration on Windows to be 97%, with Macintosh 88% overall.
For small websites that only want to send a single video stream to their viewers, this is an easy group to serve: Just deploy an HTML5 player with Flash fallback and you can serve virtually all desktop and mobile clients. The Flash Player also enables access to all the other listed advanced features, including adaptive streaming via Flash or HLS.
If you decided to exclusively use HTML5 delivery rather than Flash, you'd have to supply two codec flavors, WebM and H.264. You'd also lose all the advanced features and compatibility with the legacy browsers in the first group. Definitely not a good move.
HTML5-Compatible Browser -- No Flash Player installed
There aren't many of these users on Windows, but for them the self-inflicted absence of Flash limits the experience to a relatively low level of video: Single stream only with no live video or any advanced features. Because Safari has many relevant features built in, Mac users can access adaptive, live and all advanced features save peer-to-peer and multicast via HLS.
Now let's turn our attention to the two dominant platforms in the mobile markets, iOS and Android. As you can see in Table 2, both support HTML5 and AIR applications, but the Flash player isn't an option for either. If you decide to go the HTML5 route, H.264 is the obvious choice.
Table 2: Mobile markets and video-related features.
HTTP Live streaming provides adaptive streaming, digital rights management and closed captions for all iOS devices, and for Android 3.0 and later devices, although this still comprises only 35.8% of Android devices according to Google's latest numbers (as of Dec. 5). In addition, HLS support has some notable flaws, such as the inability to seek through on-demand streams, and scenarios where the aspect ratio can be distorted upon full-time playback.
The other alternative to deliver these features to Android devices is an AIR application, though Flash DRM is not supported on the iOS platform via AIR applications. The only alternative for peer-to-peer and multicast delivery in an AIR application on both platforms.
In general, for single-file streaming to desktops and mobile markets, supplying an H.264 file for HTML5 playback and deploying an HMTL5 player with fallback to Flash should suffice for many websites. Those publishers wishing to go beyond single-file playback will find HTML5 of little value, and might have to deploy a multiple technology strategy incorporating Flash, HLS and AIR applications, and perhaps a transmux-capable server like the Wowza or Adobe Media Server.
Microsoft Windows 8 currently comprises a very small percentage of the desktop and device market but this will undoubtedly grow rapidly over the next few months. Here's what we know about Flash support on Windows 8.
As you probably know, there are two basic versions of Windows 8, the full version for regular computers and Intel-based tablets, and Windows RT for mobile devices. Both come with IE 10, which can be configured in Desktop mode, which looks like a traditional browser, and Modern (previously called Metro), which is the glitzy new user interface.
There are several key takeaways respecting Windows 8. First, Flash Player comes preinstalled with IE 10 and any updates are distributed via Windows standard update mechanisms. In Desktop mode, all Flash video will play normally. However, in Modern view, only sites approved by Microsoft and placed on a Compatibility View list can play Flash content. IE10 is HTML5 compatible, of course, and plays H.264 video delivered via HTML5 in both views without limitation.
According to Adobe officials, AIR is currently supported for Windows 8 Desktop and Adobe is actively working on support for AIR on Windows 8 Modern and Windows RT, which it expects to deliver in the first half of 2013.
Otherwise, because the OS is so new and I don't have a machine to test it on, I'll stop now and promise to revisit video playback under Windows 8 once the bugs are shaken out and I have a test computer.
Author's note: I'd like to thank David Hassoun and Jeff Dicker from interactive developer Real Eyes Media for providing details about the capabilities of Flash when deployed in AIR-based iOS and Android apps.