What WebRTC is and why you should care
Have you ever tried to make a VoIP call or or do video chat in your browser only to find that you were required to install some Flash or Java plugin? Annoying, right? Well, it may soon be time to rejoice: this is exactly what WebRTC is designed to eliminate.
Web Real Time Communication (WebRTC) enables browser-to-browser communication without plugins, meaning that the end user (e.g. you) can do real-time voice and video calls right in the browser without installing anything. At my startup, we use WebRTC as our browser-based VoIP client, allowing users to do free conference calls quickly and easily.
But WebRTC goes far beyond conference calls: WebRTC allows developers to easily embed real-time audio, video and file sharing capabilities in their products as if this functionality were a commodity. The time-to-market for features relying on real-time communication will be cut down dramatically as will the cost to develop them. Adding a VoIP client into your app will be as easy as adding “drag and drop” functionality is with HTML5.
This will have an impact on the entire VoIP industry, as it neutralizes barriers to entry in the unified communications space. Products like WebEx and GoToMeeting, which rely on heavy 3rd party installers, will be forced to adapt or face the consequences.
Imagine being able, as a developer, to quickly throw together the same features and functionality that Google Hangouts provides without having to spend thousands of hours and millions of R&D dollars to do so. With WebRTC that may also be possible soon, as Google is one of the project's major sponsors and leverages much of the open source technology in its own products.
WebRTC was open-sourced by Google in May 2011. Since then, there has been extensive work to standardize its protocols in the IETF and browser APIs in the W3C. The project is sponsored by Google, Mozilla and Opera.
WebRTC consists of 3 major components for developers. First,“GetUserMedia” allows the browser to access the user's camera and microphone (previously, browser security prevented this, thus requiring 3rd party add-ons like Flash). Second, “PeerConnection” allows developers to setup audio and/or video calls. Last,“DataChannels” enable P2P data-sharing across browsers.
Chrome and Firefox were the first major browsers to support WebRTC, both coming on board in early 2013. No word on when, or even if, Internet Explorer or Safari will follow suit; however, open-source plugins are already available that enable WebRTC in these browsers.
In the world before WebRTC, if you wanted to utilize real-world communication functionality right inside your web browser to make a call or share a file, your experience would go something like this:
- Click the link to the WebEx, GoToMeeting or audio/video conference.
- Download and install a very large Java installer or Flash SWF.
- Wait some more to join your webinar, video conference or call.
- Join the session, maybe in the web browser, or likely in an app outside your web browser.
It was difficult, time-consuming, and clumsy given the lack of tight browser integration -- in most cases, you had to either leave the browser to do RTC or install and/or approve a flash file, making for a very disjointed experience.
In the WebRTC world, your experience sharing in real-time of audio, video, files, or your desktop goes more like this:
- Click the link to go to the web app where the webinar, video conference or call is hosted.
- Allow WebRTC to access your mic (first time only).
- Start the session right in your browser.
This user experience is fast, easy and feels more cohesive. You never have to leave the browser or install 3rd party software to make real-time communications work. You just go the web app and get started. It's that easy.
Because WebRTC changes the level of effort required by developers to build real-time communications features into the browser, it in many ways makes this functionality a commodity. What would have previously taken thousands of hours of developer time now can be done in a matter of days. This removes the technical barriers of entry to the real-time communications market.
What this commoditization of the real-time web means is two-fold:
First, the inherent virality of real-time communication products if more important than ever. With viral products, leads widen over night. Defensibility in the form of technology matters less. For an example, look to the social media market. Twitter would take little more than a weekend for a good developer to build, Instagram a matter of weeks. What these products possessed that allowed them to win were features such as network effects, which made them more fun to use if you got all of your friends to use them as well, making them inherently viral. With WebRTC, expect the Unified Communications and Collaboration market to start to looking a lot more like social media and less like old school telecom.
Second, expect to see a plethora of new real-time communications and collaboration products that run in the browser and offer a beautiful user experience. In the past, one of the largest barriers to great user experience within a browser based real-time communication product was a technical one -- it was impossible to access a computer's mic or camera through a browser. You had to use 3rd party software like Flash or Java. This kept developers from implementing the great user experiences that their teams came up with. WebRTC removes this barrier.
While WebRTC is a disruptive force in real-time communications, it is still a young technology. As such, there is still a lot of growing up to do. Early adopters are leveraging it and we're seeing some of the larger players start to jump on board. However, it's still up in the air, for example, as to whether Safari and/or Internet Explorer will ever adopt it -- requiring at least a light browser extension to be installed to “WebRTC-enable” these browsers for now.
So the future of RTC isn't here quite yet, but it's just around the corner.