Ah, video delivery on the web used to be so simple. A developer would easily build or license a Flash player and be serving up videos on his or her site within a few hours. Yes, I know... Flash is proprietary technology, but life was good: not much thought went into video codecs or browser support. Flash could handle virtually any codec, and its worldwide penetration statistics consistently hovered somewhere in the 98.5-99.5% range.
Enter the iPhone, and Apple’s conscious (and some might say “spiteful”) decision to prevent Flash playback and push HTML5 as the preferred video delivery mechanism. Apple cited chronic performance issues with the Flash platform and a desire to encourage adoption of web standards as the primary reasons for their move, but the cynic in me believes that greed also played a pretty big role. For instance, at the time of the iPhone's launch, over 70% of online games were built using Flash. Apple saw gaming as a huge part of mobile device usage (and by proxy, its App Store), so it made a lot of sense for them to force developers into building apps rather than allow them to continue working in Flash. After all, the App Store is the only legal way to download an app to your phone, and Apple does enjoy a 30% cut of every sale.
Regardless of the motive, Apple’s decision put developers in a bind, and they have been slow to adapt. Three years after the release of the original iPhone, only 10% of all online videos were available through HTML5. Today, a slim majority of online videos are available through HTML5, but it has been a long, slow climb.
So why the slow adoption rates for HTML5 video? There are several reasons, but the biggest one is browser compatibility. While the HTML5 specification provides directives on how video playback is achieved, it does not define how video should be encoded. Therefore, each browser is free to choose which codecs to support, and of course, there is unfortunately no single codec that is supported across the board. Further, not all of the browsers which support HTML5 video support all of its features!
Referencing the chart above, it’s easy to see that to provide the best experience possible to our end users, it’s necessary to prepare video using two codecs (H.264 and WebM) and support and maintain two video players (HTML5 and Flash).
Video is the lifeblood of our sister company, how2heroes, so we’re in the process of attacking these issues head-on. The challenge is to keep up with advancements in technology while supporting as many of our users as we possibly can. All 2000+ videos on how2heroes.com were originally encoded using H.264, which for years has been as close to “standard” as exists in the video codec space. To re-encode everything using WebM would be a massive undertaking, so we’ve decided to take a phased approach.
In March, 2010, we provided a no-frills HTML5 video player which was used exclusively as a fallback for our users who didn’t have Flash. Today, we’re slowly starting to roll out a new HTML5 player to all browsers that support the H.264 codec. And for the other 56% of our users, we’ll be supporting and maintaining our Flash player indefinitely.
The good news is that our initial testing has indicated that our new HTML5 player is performing very well. Video playback is smoother, and the player takes up less system resources than its Flash counterpart. So, regardless of all the trouble HTML5 video is causing, it’s comforting knowing that the effort will be going towards providing a better experience for our users.
If you're running Chrome, Safari, or Internet Explorer 9, why not give our new video player a try, and let us what you think!