Image Image Image Image Image Image Image Image Image Image | April 20, 2014

Scroll to top



The Bitter Reality of HTML5 Video on Android

The Bitter Reality of HTML5 Video on Android
Jens Loeffler

If you have been reading this blog in the past, you are aware of the video features required for professional video delivery. With “professional”, I am referring to premium video content, which requires different functionality than casual videos. This is less relevant for the publication of a personal vacation video, or free, not monetized content, but rather for premium video.

HTML5 for professional use has been making some significant progress in 2013, though it is continuing to face fragmentation challenges. To better understand what those advanced video features are, I recommend reading my online video beginner’s guide, and my current state of HTML5 post.


HTML5 Video on Android

One question I often receive is regarding HTML5 video on Android. It often causes confusion, since the term “HTML5 video” doesn’t define the supported feature set, especially when it comes to advanced streaming features, such as streaming protocols, closed captioning or content protection.

The short summary is that Android does not match the iOS HTML5 streaming capabilities, which leads to unpleasant surprises when opening an iOS optimized video streaming site in the Android browser.

But why is this the case when Android is leading with an 80% market share? To better understand the challenges today, let’s look at the history of browser based video on Android.


Android 2.2/2.3

Even though Android already had pre-commercial release versions in 2007/2008, it became increasingly more popular with Android version 2.2, which first time ever on a mobile device supported Flash Player.

Android’s originally supported video streaming format was RTSP, and was developed in the late 90s. Given its age and limitations, it is not widely accepted as modern streaming format. With Flash Player support, the Android browser on a sudden had access to video streams that were designed to play on the deskop.

With progressive download as the only native alternative for video in the Android browser, Flash Player became very popular for video playback. Even to the point, where native applications opened a webview to stream video with Flash Player, instead of relying on the native video playback capabilities of Android.

HLS support was absent in Android 2.2, while Android 2.3 only had very rudimentary, not yet official, support for HLS.


Android 4.0

I am on purpose skipping Android 3.0, since it was mostly used to enable the tablet flavor of Android, with Android 4.0 merging the phone and tablet versions. There are practically no Android 3 devices on the market that haven’t been upgraded to Android 4.x .

Android 4.0 changed the paradigm of online video on Android. With the discontinuation of further development of Flash Player for Android, caused by the fact that mobile sites simply didn’t use Flash without iOS’s support, it created a clear gap. The conclusion the Android team seemed to have was to endorse the iOS model, and support HLS playback capabilities in the browser with the HTML5 video tag.

Even though HLS support was not mature, it seemed to be a direction I even personally recommended as migration path.


Android 4.1+ 

A challenge Android faced in earlier days was the lack of a higher end browser. The native Internet browser was significantly behind the desktop Chrome browser. Android changed this by introducing Chrome for Android.

Chrome provides a much improved browser experience, but it impacted video playback.

  • Even though the archived versions of Flash Player still worked on 4.x with the native Android browser, Chrome officially has no support for Flash Player anymore.
  • The Chrome browser is default in Android 4.3.
  • Although supported in earlier OS versions, Android 4.3 Chrome does not support HLS anymore in the HTML5 video tag,

Update (02/14) HLS video support seems to be back in the latest Chrome browser, but it remains to have issues across different devices. 


But even if the Chrome browser offered support again. Even though HLS is available in Chrome, it is still limited by the native HLS playback issues Android is facing.

A realistic workaround is to use a native application and open it from the web browser by using the Android intent filter. It has not much to do with actual HTML5 video, but it allows the use of a custom and improved HLS video stack professional Android video applications rely on. As example, videos for trailers or clips could be played with progressive download in the browser, while videos requiring adaptive streaming, live, or content protection could rely on a native application.

This might not be the end-state, since technologies and options constantly involve – but for now, we need to face the bitter reality of HTML5 video on Android.

  • ElliotGeno

    Also, across the board they forgot to implement transparent video in every browser. It is only just now beginning to show up as an afterthought. Transparent video was incredibly useful for complex, artistic layouts. I know they are not as efficient, but it opens up a lot of possibilities. It’s strange that they didn’t even look at how powerful FLVs could be used from a reference in the HTML5 spec!

    • jensloeffler

      Yes, that has always been huge for marketing sites. Are you referring to Android though, or also desktop? This seems to be more important on large screens.

      I was hoping someone would correct me, and that the Android / Chrome team changed direction without it being broadly public, but it doesn’t seem to the case.

      • ElliotGeno

        I was speaking of all HTML5 video on desktop as well as mobile. I think I remember reading about Chrome introducing alpha channel support recently, but it is something that should have been available right away. It doesn’t have to be used only for video players either. You could also use it for 360 views of products over any background you wish. The main thing is that the possibility is there to exploit. I think the creators of the spec believe developers abuse it… But those who use it imaginatively and responsibly may create something entirely new!


Get every new post delivered to your Inbox

Join other followers: