Yesterday two prominent people at Mozilla announced that Mozilla plans to support H.264 to some extent in future versions of Firefox:
- Video, user experience and our mission by Mitchell Baker, Chair of Mozilla
- Video, Mobile, and the Open Web (alternate) by Brendan Eich, CTO of Mozilla
While I understand their reasoning, I hope there is a chance to change that position. In my view, continuing on that path will ultimately hurt the open web, both in the short- and long-term.
It’s important to understand how supporting H.264 in any way will necessarily fragment the Firefox userbase into “the haves and the have nots”, those Firefox users who can watch H.264 in <video> and those Firefox users who cannot. In many cases, Firefox would be able to rely on the operating system and/or hardware having a patent license for H.264 and an API that allows Firefox to play H.264. But in many other cases, there will be no option for playing H.264 in <video> without forcing Firefox users to run particular software or agree to particular license terms that they would not otherwise need to.
The “haves” would be those running Windows 7, OS X, or Google-approved, unmodified Android (and similar) mobile devices. These all ship with an H.264 patent license and APIs for playing H.264 videos using that license. Firefox could utilize the existing patent license and APIs to play H.264 without any additional trouble on the user’s part.
The “have nots” would be those running Windows XP, virtually any primarily free software desktop OS (such as Ubuntu, Fedora, and Debian, which all ship without H.264 support), and most mobile devices running a custom OS (such as CyanogenMod, Replicant, or SHR). According to Brendan, “dropping H.264 from <video> only on desktop and not on mobile doesn’t matter, because of Flash fallback”. But this doesn’t achieve the open web goal because people will become dependent on Flash (we should instead let it die) and because it doesn’t work on all mobile devices, as Flash is not supported on custom OSes that people may choose to run (and should be free to run if they don’t like the software that came with their phone). Furthermore, web developers would be encouraged to keep using Flash fallback code for even longer than they would otherwise.
This would cause the Firefox community to be split into two factions: those who can play H.264 <video> and those who can’t. We should be very careful to avoid this situation.
One of the primary strengths (and, I believe, goals) of Firefox is that it works in a similar manner and with similar features and available add-ons across all supported platforms. When people use a program called “Firefox”, they know it will let them browse the web and use add-ons they know, all with a familiar style. The Firefox brand tells users what they can do with a program called “Firefox”.
Because of the fragmentation outlined above, supporting H.264 for some users necessarily means that others will not be able to play H.264 (especially since Mozilla “will not require anyone to pay for Firefox”, according to Brendan). This seriously dilutes the Firefox brand, as people will no longer be able to move from one Firefox to another with an expectation that a site working in one will work in the other. Instead, “Firefox” will come to mean a browser that might play H.264, but it might not and you can’t really be sure unless you know a lot of technical details about the system you’re on (the whole point of a brand is that you don’t need to know these details).
Supporting H.264 in Firefox would be a compromise unlike any Mozilla has made before. For the first time, Mozilla would be telling its users (in effect) “if you want a Firefox that works like all the other Firefoxes, you need to run Windows 7 or Mac OS or one of these select mobile OSes”. Anyone who wants something else will have to compromise in their own way, by accepting a user agreement that is against their morals or running software that they are not free to examine (unlike Firefox, which can be examined and modified as they see fit).
This unprecedented compromise will make it harder for Mozilla to reject future detrimental compromises, which is a big loss for the open web. No other non-profit organization has even a small percentage of the influence that Mozilla has on the direction of the web. To lose this positive influence through more and more compromises would be devastating.
To respond to Brendan’s statement, yes, “patents expire”. But what doesn’t expire is the ongoing effort to patent more ideas and then force them upon the unsuspecting public. Compromising on H.264 now makes it difficult to say no to HEVC and other patented technologies later on.
In his post, Brendan outlined several promises made by big companies that have not been kept, and as a result, have slowed the adoption of WebM, the (still not disproved) royalty-free alternative to H.264. In particular, three promises have not been kept: Google has not converted all YouTube videos to WebM, Google has not discontinued H.264 <video> support in Chrome, and Adobe is still not supporting WebM in Flash Player.
While it is disappointing that these companies have not get their promises, it is crucial that these failures to follow through do not discourage others from continuing along a positive path. By choosing to support H.264, Mozilla would significantly reduce Google’s and Adobe’s incentives to continue with these projects, whose completion would ultimately benefit the open web. If Mozilla instead held firm with WebM and Theora, the open web (at least as far as codecs are concerned) would arrive more quickly.
In essence, by keeping its own promise to users that they will promote the open web, Mozilla would pressure these companies to keep their promises, too.
The hurdles that face WebM are not insurmountable. ARM chips that currently ship in Android phones can easily decode 1080p WebM in real-time (direct link). Though many chips can assist WebM decoding already, hardware decoders are ready to go. Nearly a year ago, 99% of YouTube views were available in WebM. And now more browsers support WebM than ever before, especially with Chrome Frame and Perian (see closed WebM-on-Safari ticket).
There is a lot more work to be done to make WebM the standard, but it is achievable. I hope that Mozilla will choose to support only free codecs, so that the open web will arrive sooner rather than later (or never).
If it were Apple or Google or Microsoft deciding whether or not to support H.264, I wouldn’t bother writing this. Those companies are already set in their ways and are not as committed to the open web as Mozilla.
It’s exactly because Mozilla has been fighting the good fight for so long that I think there’s a chance that people at Mozilla would change their mind about H.264 and that I wish to encourage them to keep it up. I believe that this minor corrective action will ultimately accelerate all the good that Mozilla has done already. To everyone fighting for the open web, including Mozilla: keep up the good work!