Mozilla had to add support for the proprietary codec

Oct 22, 2012 08:11 GMT  ·  By

Mozilla is moving ahead with plans to include support for H.264 in Firefox, something it decided against when first implementing HTML5 video.

Mozilla only wanted to support open video codecs and, with Google seemingly putting its weight behind WebM, its own open source video codec, it seemed like Firefox could get away with not supporting H.264, which is widely used on the web and offline.

But Google's promises remained just that and Chrome never dropped support for H.264 like it should have had.

This forced Mozilla to make a decision that it really didn't want to make, it realized it had to build H.264 support into Firefox.

This was back in March, since then Mozilla has been working on the actual implementation.

Note that in all cases it means supporting codecs found on the host machines, Firefox will not have H.264 support built into it on any platform and Mozilla will not license H.264. The upshot is that the new tech will make it possible to support more codecs, like MP3.

The mobile Firefox already supports H.264, but that was easy enough to achieve. H.264 encoding and decoding is built into the chips that power all smartphones, it was only a matter of tapping into that functionality.

The latest Firefox for Android 17 Beta should be able to run H.264 found online natively. Firefox OS, Mozilla's own platform, also supports H.264. Again, this is possible because of the hardware powering these phones.

On the desktop, there's more to be done. No platform supports H.264 yet, but there is work being done on using Gstreamer on Linux and the Windows Media Foundation for Vista and above. There's nothing for Mac OS X yet.

Windows XP users will be able to leverage Flash, though not as you'd expect it. The current plan is to use the Flash plugin by feeding it the video data and retrieving the rendered frames, but the data will come via an HTML5 video stream from the web and will look and feel like HTML5 video for the user, Flash is only used for the decoding process.