What is WebRTC?

March 8, 2012
This is the first post I've written about WebRTC. Here's a better overview of What is WebRTC. For over a decade the VoIP market has been a relatively closed one, especially compared to what is happening with web based technologies. If you narrow it down to video conferencing, then almost every year I'd hear that this year – this one – is going to be the year video conferencing takes off – truly. And guess what? It never did happen. Now there's a new game in VoIP town and it is called WebRTC.

WebRTC in a Sentence

WebRTC is a real time communication stack for the web. WebRTC is a media engine with JavaScript APIs. WebRTC brings VoIP to the browser natively. Maybe 3 sentences.

History

If you look at the browser, with a few exceptions it currently replaces all of the other platforms and environments for the applications we use. One such exception are applications that require bidirectional voice and video calling capabilities. While you can get these by way of a Flash plugin, this has its drawbacks. In the beginning of 2010, Google finalized its acquisition of On2, a video codec company that has developed the VP series of codecs, with the latest one being VP8. On2 has always positioned its codecs as a patent free replacement to the H.26x series of codecs, which were standardized, patented and widely used. It then went about opening On2's technologies to the world and open sources VP8 under the name of WebM. The idea was to replace H.264 for web videos and by that, reduce patent costs for everyone – especially Google itself. Google went on and during 2010 acquired Global IP Solutions (GIPS), a company known for their media frameworks – a piece of technology that makes developing VoIP and video calling applications easier. At the time, GIPS had a large market share in VoIP, which caused most of the industry to scurry and search for alternative solutions. As with On2, Google took GIPS' assets and open sourced them. This time, with an interesting twist: they threw out all voice and video codecs that had patent owners and added an additional layer – a JavaScript API as an integration layer to web browsers. The idea? Have bidirectional media processing and media coding technologies available in every browser. It then went on to push it as a standard at the IETF and W3C, where such standards live. It is now called WebRTC.

What's Inside WebRTC?

From a codec perspective, WebRTC comes with the VP8 codec for video – instead of the more common H.264. On the voice front, it touts G.711, iSAC and iLBC. G.711 is the vinyl voice codec, while iSAC and iLBC are GIPS homebrewed codecs. WebRTC simplifies a lot of technologies for developers:
  • Transport layer, which is relatively simple, but hard to tweak for realtime communications
  • Codecs, something that is usually acquired from third parties
  • Media engine, something that is always looked at as art more than a straight forward implementation
And it then takes it to the masses of web developers – a group much larger than VoIP experts. Here's the architectural diagram found on the WebRTC project page: WebRTC is a work in progress. It isn't integrated into most browsers yet. You can get a test bed for it on every Chrome browser today, but that's about it. And it doesn't have all of its features available. It does have a lot of disruption potential.

Classic VoIP or WebRTC?

WebRTC is a paradigm shift for video calling. It works differently and behaves differently. Here's a short comparison chart between WebRTC based video conferencing system and the classic one that can be found today.
Classic VoIP WebRTC
Signaling SIP or H.323 in most cases Undefined
Media transport RTP/RTCP RTP/RTCP
Security SRTP in SIP,H.235 in H.323 SRTP
NAT traversal STUN/TURN/ICE in SIP,H.450.x in H.323 STUN/TURN/ICE
Video codecs H.263, H.264 VP8
Voice codecs G.7xx series of codecs, and then some G.711, iLBC, iSAC
In future posts, I'll try to go over some of the aspects of WebRTC, its advantages and challenges over existing solutions.

You may also like