![](https://www.overdigital.net/wp-content/uploads/2013/12/android_video-scaled.jpg)
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.
Conclusion
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.
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!
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.
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!
Looks like with WebM it works now – http://updates.html5rocks.com/2013/07/Alpha-transparency-in-Chrome-video
Yep… I think this is where I saw it.
It is the biggest scam in the entire history of Internet, HTML5 pushed by Jobs has no other purpose but to force any commercially valuable video to native apps so it can be taxed at 30%. In the US court of law this is called racketeering.
That is such an insanely idiotic statement I don’t know where to start to debunk it.
Why dont you take a shot, because one thing I’m sure about is that nobody cares about your personal feeling about it.
To Apple’s defense, HLS on iOS HTML5 actually works well, while Android doesn’t so much.
Yeah im getting that problem on android, apple it works just fine
Guys, please take a look on DASH-MPEG specs. It’s supported by Chrome in Android and Desktop. Although it’s still a draft, it’s the best alternative for Video Streaming in Chrome Browser, and as easy to use as this (didn’t find the link to explanation):
1- Include dash.all.js in the header of html file
2- Start your stream with this function:
function startDashStream(videoTagId, url_stream) {
// Initializes Dash Context
var context = new Dash.di.DashContext();
// Creates Media Player
dashPlayer = new MediaPlayer(context);
dashPlayer.startup();
// Setup Video Tag with Dash Player
dashPlayer.attachView(document.querySelector(“#”+videoTagId));
// Starts to reproduce manifest
dashPlayer.attachSource(url_stream);}
I’m using it with Live Streaming, and works like a charm. Fact is, HLS is not “well-supported” by Chrome anymore because of better, open source solutions such as Dash. More info here: https://github.com/Dash-Industry-Forum/dash.js
I agree that MPEG-Dash is the future for the Android mobile browser. I would be interested in getting more real-world testing feedback / see sites that rolled it out.
Great writeup. I think things are getting better for Android with Media Source Extensions rolled out. Pretty soon the majority of Android devices in the US will be able to live stream DASH and HLS using MSE (it is already possible and works rather well).
Dont know what this all is about. All I want to know how to play html5 videos on android fones because all the time I try to open a specific sites videos, it doesnt allow to play saying an error message that html5 not found. Wtf. And I didnt simply understand after reading this all that, would I even be able to play them. Is there something wrong with my fone or they are just made for ios and pc??
I have a tab S. Thinking of asking for my money back. If you can’t watch video like TV on demand then it is not much use. Also getting sick of Googles control over my f Ing device. They are just like apple. At least with Windows you can block what you want and control what is updated. We need a tablet that runs Ubuntu.
I see that websites such as http://www.earpixels.com have the same problem…their embedded players support IOS but not android…and that’s what similar with sites such as http://www.soundcloud.com
Yeah you are right Desin !! ..i alos was in confusion that how..it can be possible that so much professional websites such as http://www.earpixels.com can do the big mistake…but afterwards i saw..that..mistake is done by android developers