Wednesday, April 20, 2016

Microsoft Edge Will Support VP9 ↦

HTML5’s <video> element has long been mired in controversy. The specification is silent as to which video codecs browsers should support for use with that element. Apple championed the use of the H.264 codec, as many of their mobile devices, including iPods and iPhones, have long had hardware decoders for that codec. Consequently, Apple’s Safari and Mobile Safari browsers support H.264 exclusively. But H.264 is controlled by the MPEG Licensing Authority and there were concerns that the MPEG LA could start charging exorbitant licensing fees once the codec’s use was firmly established.

In 2010, Google acquired a company called On2 and with it the VP series of codecs they had developed. Google then announced that the VP codecs would be available royalty-free in perpetuity. Subsequently, both Google’s Chrome and Mozilla’s Firefox implemented support for the VP8 codec (and its successor, VP9).

Also in 2010, Microsoft announced that Internet Explorer would only support the H.264 codec. For the last six years, then, the landscape for the <video> element has been bifurcated, with Safari and Internet Explorer (and it’s successor, Edge) supporting H.264 while Chrome and Firefox supported VP8/VP9.

Now, Microsoft has reversed their decision and has announced that they will support VP9 as well:

Starting with EdgeHTML 14.14291, the open-source WebM container format and the VP9 video and Opus audio codecs are supported in Microsoft Edge. These are available to websites that use Media Source Extensions (MSE) to adaptively stream video content. Windows Web Apps (built on the same Edge APIs) will also be able to use WebM streams containing VP9 and Opus. This change will be available in stable releases starting with the Windows 10 Anniversary Update.

Of course, mobile devices without a hardware decoder for VP9 will experience higher CPU usage and lower battery life when viewing VP9 content, so:

…we’ve put VP9 behind an experimental flag in Microsoft Edge, and have provided a default setting for it that automatically enables VP9 when hardware acceleration is detected. VP9 is not supported on Windows mobile SKUs at this time.