Much has been written regarding fragmentation in the Android platform. Behind all these ugly charts, maps and databases of inconsistencies lies the challenge of building consistent user experiences for your visitors. This is especially true for web video where html5 sometimes works and sometimes does not, where Flash is sometimes supported and increasingly not.
At Kaltura we aim to deliver video everywhere and we are increasingly testing a broad set of Android devices across the major release versions across emulators, physical devices and live device testing tools like perfecto mobile. While we are always working to stay ahead of evolving technologies, here we outline some of our findings to help Kaltura users and video producers better manage expectations around Android web video delivery.
Kaltura also supports native Android applications; which provide a lower level media framework along with the ability to build your own tools for end to end control of the experience from everything to DRM to player UI. But the focus in this document is exclusively on Android Web views without the installation of any additional software on the respective devices. This means we don’t consider telling the user to “upgrade flash” or “install mobile Firefox” even if it would greatly improve their experience.
This document is broken into sections per major Android releases and includes examples and screenshots of popular phones running each version of the platform along with explanations of the limitations and trade offs of each device respective of the version of Android its running.
Android 1.x is practically speaking not supported, these devices often did not have HTML5 or Flash installed, for these devices we provide a direct link to download the asset that is the least common denominator variant of h.264 file. In terms of analytics this means only the video “play” event is registered and details of player progress are not available. Likewise ads are not possible unless they are burned into the stream.
Featured to the left is the Sprint HTC Hero running Android 1.5, it includes Flash but stuck with an old version Flash 9, won’t run the flash KDP player, so we provide a direct link to the asset for playback. ( It appears to sometimes crash playing videos in the native player. )
As of September 2012 Android 2.x still makes up the majority of the Android platform market share. Unlike 1.x, 2.x often features the latest mobile flash and rudimentary HTML5 support. While this offers advantages in terms of analytics and player api support, it creates complicated trade offs.
These trade offs have the HTML5 native device player on one end offering hardware accelerated playback, a native player ui but little flexibility in controlling the experience, vs flash player that provides more control over experience (ads, branded player), but sometimes lacks hardware acceleration / kills battery life, is difficult to use desktop ui’s on mobile, and sometimes fails in subtle ways such as not properly supporting landscape vs portrait device orientation transitions.
Kaltura provides tools for managing these trade offs; such as the "use html5 first on android option", as well as fine grain per-device controls via the user agent player controls plugin. Integrators can manage trade offs with rules such as “use flash on android”, or provide an html message pointing viewers to download a native app for particular mobile user agents.
The Samsung Galaxy S running Android 2.2, includes both Flash and HTML5 support. Via configuration options we can choose the html5 player or the Flash player. On the left we see the html5video.org site which aims to promote html5 video so chooses to lead with HTML5. Further to the left Disney’s Lady and the Tramp site, where they want more fine grain control over the player experience on the device and use the Kaltura flash kdp on the android device by leading with flash on android.
The HTC Evo Shift 4G running Android 2.2 includes android 2x style native playback html5 support and flash 10,1,95, so it has no trouble running both flash and html5 style players.
Motorola Droid Razor running Android 2.3.6 and Flash 10,3,185, tells a similar story to the other 2.2 android phones with flash and HTML5 support. The player ui is overlayed even during the display of the poster, we may work around this issue in the future by hiding the native player offscreen until playback starts.
The Evo 3D running android 2.3.4 also supports HTML5 and flash so again the choice is yours.
Android 3 was largely focused on tablets and was the first android to (supposedly) support the apple live http (HLS) streaming protocol for live and on demand adaptive streaming. In the rush to get to these tablets to market HTML5 video support clearly suffered.
The Samsung Galaxy Tab 10.1, running Android 3.1 suffers from no flash and pretty broken html5 support. What is worse when in “desktop view” mode its user agent matches OSX Safari. Additionally diffrent builds have diffrent borken behavior as seen above for the same html5video.org page SCH-I950 vs P750 both “Galaxy Tab 10.1, Android 3.1 but a diffrent build with diffrent errors. Your best hope with the Galaxy tab is that the user has installed flash.
Looking to the future Google and Adobe are phasing out mobile flash and with 4.1 grade A html5 support arrives to the android platform in the form of flash free chrome replacing the stock browser. This means we can expect near desktop quality html5 support in android tablets and smartphones going forward. While the future is bright there still some stock android browsers in android 4 that while are an improvement over previous iterations can’t not handle all the features of mobile chrome.
The Samsung Galaxy S III, is one of the premier Android 4 devices, running Android 4.0.4 chrome is not yet the stock browser so it suffers from some peculiarities in intensive tests like ad overlays and ad inserts. If you're using mobile Chrome however, which will be the (default going forward), the experience is comparable to desktop html5 with support for overlays and ads.
To the left a nexus 7 runing android 4.1 displays a double click dfp preroll ad similar to its big brother desktop chrome.
Android 1.x does not support flash or html5, so we provide direct download link to play, this means no ads or player branding and limited analytics. Android 2.2 / 2.3 devices often include flash, by default Kaltura uses the flash runtime providing robust ads, player branding, and analytics support, but you may experience some UI issues and the interface can be hard to use on a phone. Android 2 also has native player html5 support, where the page invokes the native phone friendly player ui, while supporting most of the html5 api. Android 3 is similar to Android 2 in terms of flash and calling out to native players, but also adds limited support for Http Live Streaming ( apples adaptive streaming protocol ). Android 4 adds support for grade A HTML5 with mobile chrome; enabling inline players, ads, branded experiences. Android 4 also more aggressively deprecates flash support.