How Cisco ended the HTML5 Video Codec Wars

Published

Back in college (around 2010), I remember being interested in the struggle over which web technology would replace Flash for streaming video (I guess I needed more hobbies). The most amazing part was that the deciding action was taken by a complete outsider. That action ended the struggle, and ultimately set the standard that we’re still using today, 10+ years later.

Online Streaming Video used to be Done with Flash

Circa 2005 to 2008, online streaming video was largely done with Flash, which at that point was an aging technology still being used to extend the richness and capabilities of web sites well past the web standards of the time. Even the streaming giant YouTube was using Flash 1. This was before the time of smartphones, so folks were watching YouTube and streaming video on their Desktop PCs.

Flash was Not Allowed on Smartphones

Soon smartphones became available, starting with the iPhone debuting in June of 2007, and the T-Mobile G1 running Android in September of 2008. Many things made the transition on to the smartphone quickly, like cameras, music, calendars, and even maps 2 (goodbye MapQuest).

It seemed like streaming video would make the jump to mobile using the same technologies as on Desktop PCs (Flash). However the use of Flash on smartphones had outspoken opponents, including Steve Jobs, who publicly shared his opposition to the use of Flash on iOS mobile devices 3.

Steve Jobs in January 2010, a few months before the publication of “Thoughts on Flash”

HTML5 Video Competed to Replace Flash on Desktop PCs

Flash was also facing competition on the Desktop PC front, beginning with the gradual adoption of HTML5 web standards in 2008. These emerging web standards greatly reduced the reliance on Flash to build immersive and mobile-friendly websites. Additionally, HTML5 promised to add video streaming capabilities directly into the web browser, something previously done with Flash.

HTML5 as a subway map. HTML5 Linienplan.

This Resulted in the HTML5 Video Codec Wars

The decline of Flash on Desktop PCs, paired with pressure against its use on mobile devices, led to a period between 2009 and 2012 where numerous video technologies competed to become the standard for online video streaming 4. Each competing technology had it’s own video codec (software used to package a video into a digital file). During the HTML5 Video Codec Wars 5 of this time, web browsers supported different sets of codecs.

This complicated the video streaming landscape dramatically, especially when compared to the single standard codec used previously when streaming with Flash 6. While the struggle may have been hidden from the end user, as a web developer, juggling 5-6 different versions of a video was a real pain in the ass!

BrowserDeviceVideo Codec
SafariiPhone, anything AppleH.264 7
ChromeAndroid, Chrome, anything GoogleWebM 8
FirefoxDesktop PCTheora 9
Internet ExplorerDesktop PC, anything MicrosoftH.264 10
Video codecs supported during the HTML5 Video Codec Wars; Chrome support as of 2011

The major driving force of the disagreement over video codecs was that the H.264 codec (considered superiors in terms of quality per size) was patent encumbered, and required royalty payments to a company called MPEG LA in order to use it 11. This prevented adoption of the H.264 codec by open source advocates like Mozilla (Firefox) and Google (Chrome).

Cisco Ended Codec Wars by Open Sourcing the H.264 Codec

After years of competition, Cisco released an open source version of the H.264 codec in 2012 12, seemingly out of nowhere. In doing so, Cisco alleviated the patent/royalty concerns of the superior H.264 video codec, and essentially made it free for anyone to use (by covering the licensing costs with MPEG LA 13).

This action was huge for online streaming video, and the web community. Web browser hold-outs Firefox and Chrome soon introduced support for the H.264 codec, no longer concerned about the codec’s patent requirements. The HTML5 Video Codec Wars were over; H.264 had emerged as the new standard for steaming video. Web developers could finally rest easy 🙂

Why did Cisco Cover the Patent Costs for H.264?

Not much is written about why Cisco decided to release an open source version of H.264 14. Cisco, a networking infrastructure provider, had not been involved in the HTML5 standards process or video codec discussion prior to this point.

My personal theory is that Cisco released this codec knowing it would cause a boost in online video streaming due to the removal of barriers and royalty fees. This would lead to increased bandwidth requirements for networks and data centers around the world, causing providers to upgrade their infrastructure and purchase more networking equipment (Cisco’s core business). This however, is unproven.

Outcome

Since the HTML5 Video Codec Wars ended around 2012-2013, all browsers and devices have aligned to support the H.264 codec as the standard for online streaming video. As you could have guessed, Flash is dead, and no longer used for video or games on the web 15.

Web Video Codec Support in Feb of 2023, taken from source

Promising new codecs are emerging like HEVC/H.265, however browser support is limited. Only time will tell if these new codecs will catch on. But for now, 10+ years later, H.264 remains king!

References

  1. BBC News – Flash moves on to smart phones
  2. Wikipedia: Google Maps – Mobile App
  3. Wikipedia: Thoughts on Flash
  4. Wikipedia: Advanced Video Encoding – Implementations
  5. Decoding the HTML 5 video codec debate
  6. Technically Flash was a video container, but I believe codec and container are interchangeable in this context
  7. Decoding the HTML 5 video codec debate
  8. Chromium Blog: HTML Video Codec Support in Chrome
  9. HTML5 codec wars flare up again
  10. Wikipedia: Advanced Video Encoding – Implementations
  11. AVC/H.264
  12. Video Interoperability on the Web Gets a Boost From Cisco’s H.264 Codec
  13. Cisco releases free and libre H.264 code for browsers
  14. OpenH264 FAQ
  15. Is Flash Dead Yet?

Subscribe by Email

Enter your email address below to be notified about updates and new posts.


Comments

Loading comments..

No responses yet

Leave a Reply

Your email address will not be published. Required fields are marked *