Thursday, June 5, 2014

WebRTC: The missing piece in Open Web

WebRTC stands for Web Real Time Communication. This open-source JavaScript based framework let you incorporate peer-to-peer video, audio and data communication into you application. Right in the browser without any plug-ins.



I’m very excited about the disruption WebRTC is going to have and how we’ll communicate online and on mobile.

WebRTC is in a very early stage of active development. You should expect changes to the API and implementations.

“WebRTC is a new front in the long war for an open and unencumbered web” – Brendan Eich, Mozilla CTO and inventor of JavaScript

WebRTC is undeniable on the bleeding-edge of web technologies right now.

Before WebRTC there was Macromedia Flash Communication Server MX (FCS), released way back in 2002.
Later when Adobe acquired Macromedia and their flash ecosystem. FCS was renamed Flash Media Server and it’s now called Adobe Media Server.
FCS allowed you to capture webcam video and audio and stream it right from your browser to the server and then to multiple viewers anywhere in the world. The quality was good and when they introduced tunneling to traverse firewalls it worked anywhere flash did. Which at the time was 98% of PCs. It was revolutionary.

Eventually a commercial competitor Wowza was released in 2007 and an open-source alternative Red5 in 2010 that roughly matched the functionality of Adobe. But these came a few years later.

They open up a world of possibilities for real time communication and collaboration. But unfortunately solutions like FCS have a single server license over 3000 euros restricted by the number of connections.



 And over the years many developers had brilliant ideas of using this technology that were snuffed out by the cold reality of licensing cost.

This is why WebRTC will be a game changer. Because it’s open-source and essentially free. It’s bringing that sense of possibility and creativity back to real time communication.

Where did WebRTC come from? Who’s behind it?


Back in the summer of 2010, engineers from Google, Microsoft, Apple, Mozilla, Skype, Ericsson and others had an informal lunch to discuss the possibility of building a real time communication platform that would work across browsers and mobile devices without plugins.

So the IETF FTC WEB and the W3C WebRTC working groups were formed to start defining the spec.

Shorten after Google acquired a company called GLOBAL IP SOLUTIONS (GIPS) that had low level technology that powered RTC for several large customers. Including Google, Skype, AOL, Yahoo and CISCO.

Google then turned around and open-sourced those components. Added a JavaScript API and removed any audio and video codec from the spec.

This is where things got complicated. Whenever your start messing with codecs you are asking for trouble.


Long story short, there is a codec war going on. With Google wanting to use their own open source VP8 video codec and pretty much all the other stakeholders pushing for the standard H.264 codec.
H.264 is patent covered which defeats the open and free ideal of WebRTC.

Interesting twist, in October 2013, CISCO announced that it would absorb all licensing costs for H.264 coding in the future. Effectively removing this barrier to adoption as a standard.

But even with this change, Google is still holding firm.





So while Firefox is on board with CISCO with H.264. Chrome is not. So we developers are stuck in the middle. The codecs are not the only thing that is not standardized in WebRTC. But it’s getting there.

A messy little codec war isn’t enough to hold us back from creating amazing applications using WebRTC.

WebRTC democratizes Real Time Communication which has been the missing piece in the Open Web.