It's a familiar drill with WebRTC: A new application that provides browser-based, real-time communications works in Chrome -- and sometimes Firefox, too.
The "browser-based, real-time" of WebRTC has a nice ring to it, but frequently includes an asterisk that specifies Chrome. What kind of standard is this WebRTC? -- a contentious, proposed one, that's what kind. Chrome supports Google's vision of WebRTC plus added signaling services, and Firefox supports a narrower implementation of the proposed standard.
Last month, Cisco unleashed Project Squared, a WebRTC-based application that provides asynchronous and real-time communication services including video. Project Squared works in the other leading browsers but requires Firefox Version 3.3 or later to access the real-time components. It just might be the first WebRTC application that only works with Firefox for real-time communications. Blasphemous?
Butting Heads
It all started about a year ago when Cisco introduced the concept of OpenH264 as a video codec specification for the IETF's WebRTC standard (because, contrary to popular belief, the VP8 video codec is not part of that standard). The WebRTC video codec spec had been the primary point of WebRTC contention, also known as the Great Debate of 2014. The Google camp wants VP8, a potentially free and open codec. Cisco and many others prefer the predominant H.264 codec, which requires licensing and royalties.
Cisco felt so strongly in favor of H.264 that it published OpenH264 along with an offer to foot the bill for any company that uses it. Likewise, Google felt so strongly about VP8 that it removed H.264 support from Chrome. Both Internet Explorer and Safari support H.264, but not WebRTC.
Mozilla, a nonprofit organization, makes Firefox. Naturally, since Mozilla gives away the browser -- its primary product -- it embraced the free and open VP8 codec. As H.264 requires licensing, it was never practical for Mozilla to include it.
When a Plugin Isn't a Plugin
OpenH264 is free (or more accurately provided at Cisco's cost) and open (published on Github). However, licensing terms restrict Mozilla from bundling Cisco's codec within Firefox. Instead, Cisco and Mozilla devised a way to perform a seamless, direct download from Cisco to the browser after the browser is installed on a client. Evidently the download is not a plugin if the user doesn't manually plug it in.
Firefox has been supporting OpenH264 since October, and still supports VP8 (and other codecs such as Daala). At this time, however, Firefox uses OpenH264 only for WebRTC applications.
Cisco's stated intention is to ensure WebRTC is compatible with the installed base of videoconferencing systems. Along with the Project Squared launch, Cisco demonstrated a non-transcoded video call from a browser to a room system. While this was an all-Cisco demonstration, such video calls should work with other endpoints and applications as well.
Firefox won't be the only browser with WebRTC and H.264 support for long. The WebRTC working group recently recommended that both H.264 and VP8 codecs be included in the WebRTC standard, ending the Great Debate (read WebRTC Video Harmony at Last?). Additionally, Microsoft has stated plans to support ORTC, or Open RTC, in Internet Explorer. Of course, you can count on lots of work and plenty more debates ahead, but WebRTC has made significant strides in the past few months.
Presumably Google will add H.264 back to Chrome. And while Google (as well as Microsoft and Apple) could use OpenH264 as well, it's more likely to continue licensing its own rights to the codec. Regardless, that shouldn't matter regarding compatibility. Since the legality of VP8 is still in question, Google may deliver it as downloaded module in a similar fashion as OpenH264 for Apple and Microsoft.
As of today, Firefox offers the most versatility for WebRTC, with support of two (free and open) video codecs. Expect the other browsers to follow, and watch for more OpenH264-based WebRTC applications -- especially from vendors that make video room systems.
Follow Dave Michels on Twitter and Google+!
@DaveMichels
Dave Michels on Google+