Probably the most attention-getting feature of the HTML5 web standard is support of video as a standard web feature, making it unnecessary to use proprietary plugins such as Adobe’s Flash to support web video.
But this is also one of the key unsettled elements of HTML5, says David Recordon, who leads the open source and open standards team at Facebook.
Recordon was in New Zealand for the recent Webstock conference in Wellington, where he spoke about the use of HTML5 at Facebook and later spoke exclusively to Computerworld.
Two video codecs, H.264 and WebM, have been advanced as candidates for inclusion in HTML5. Each has its pros and cons, says Recordon and the debate has become somewhat heated, “about freedom and what does freedom mean, in terms of can I implement it in open source and is it royalty free, or is it an industry standard and can we collaborate freely on developing it?”
The definition of an open standard is difficult to pinpoint, he believes, but generally involves those two elements: “One side is how it is developed; is it a collaborative process, something that multiple people, whether they’re individuals or work for companies, are able to participate in or was it built around consensus?
“The other side is the legal perspective; can anyone implement it; is it free, or do I have to pay royalties to someone for patents? And that leads onto the question of whether it can be implemented freely and open-sourced.”
What makes the video codec debate potentially more discordant and long-lasting is that browser-makers are taking sides. Apple’s Safari supports H.264 while Chrome, Firefox and Opera incline towards Webem. Microsoft IE sits on the fence. “They [Microsoft] are supporting H.264, but saying if you have a Webem codec on your computer already, then we will play that. That means the answer is not clear or easy; no browser supports both [formats] out of the box.”
The debate is frustrating, because most web operators, like Facebook, simply want to give their users a good video experience, he says.
Facebook itself inclines towards H.264 in work it has been doing so far on HTML5 video. “But for the most part we are still using Flash today. That still seems to be the best answer when you are thinking; ‘I just want to offer my users a great video experience’.”
One of the prominent experimental fields for Facebook’s open standards effort is in games.
“We open-sourced a tool called JSgamebench about two weeks ago. That is exercising browsers to see what is becoming possible in high-performance 2D and 3D games today, not using Flash or Silverlight; but [the standard HTML5 feature] Canvas. [We want to see] what can we do using web technologies. We are trying to get a better idea of how do these techniques work. As well, we are looking to create a broader conversation in the industry around what does it take to build really high-performance games, using just these web technologies.
“People spend a large amount of time on games across the web and on Facebook,” Recordon says “and you’re seeing companies like Zynga, who has just rolled out Mafia Wars Mobile, built on web technologies instead of using Flash.
“That is definitely an area that is important to us, continuing to foster this gaming platform and doing it using HTML5.”
The other leading-edge field for Facebook is mobile and the main question is again broad implementation. “Can we get to the point where we’re able to write an application once and have it run across a whole lot of desktop web browsers and mobile web browsers and devices?”
Currently when Facebook develops an application, “we are building a version for the Facebook website, for the iPhone, for Android, for BlackBerry, for all these different phone. This takes up a lot of energy.”
The “Holy Grail”, he says, is write once read everywhere, but that may be impractical.
“We look at being able to build an application that adapts to the different environments it runs in, so that if you have a phone with a large screen and a touchscreen, then we are able to take advantage of that. But if you have a smaller phone or a feature phone, then we are able to have the same code-base and have it progressively enhance itself or degrade itself to these different situations.”