We in the tech world are constantly confronted with what is likely to be the “next big thing.” In fact, there is a tendency, as Gartner Group has made famous, for us to become violently in love with something and then grow disappointed when ostensibly grandiose promises fail to materialize as quickly as pundits and industry experts have suggested.
Funny thing is that eventually, many of these supposed next-big-things will become commonplace.
The reality is that most revolutions happen in an evolutionary manner and at a pace of their own, which is why many do not live up to their early expectations. There are numerous examples of this, and with things like HTML5, we’re likely to wake up one day and go, “wow, and they said it would never take off.”
I do not think that is going to be the case with Web Real-Time Communications (aka WebRTC). The reason is that it is clear that in what I have described in other postings as “The Age of Acceleration,” real time is the pace at which we all run in business as well as personally, and WebRTC fills a current and not just a future need.
Getting to know WebRTC
For the uninitiated, WebRTC as described by webrtc.org, is:
It is being actively supported and implemented by Google, Mozilla and Opera in their respective browsers. Unfortunately, Microsoft, while supporting the need for WebRTC, has submitted its own contribution to the W3CWebRTC working group, which is working on a common API for voice and video chat between browsers called “Customizable, Ubiquitous Real-Time Communications over the Web, or CU-RTC-Web for short.
Hopefully, the differences can be ironed out.
The challenge WebRTC is looking to address is the fact that currently there is no free, high-quality, complete solution available that enables communication in the browser. WebRTC is a package that enables this. It includes the following:
- Existing integration with best-of-breed voice and video engines that have been deployed on millions of end points over the last 8+ years. Google is not charging royalties for this technology.
- Abstracts for key NAT and firewall traversal technology using STUN, ICE, TURN, RTP-over-TCP and support for proxies.
- Support for current Web browser strengths by abstracting signaling and offering a signaling state machine maps directly to PeerConnection. This allows Web developers to choose the protocol of choice for their usage scenario including but not limited to: SIP, XMPP/Jingle, etc...).
As noted in a recent blog on thisisgrow.com, WebRTC’s capabilities fall roughly into three categories that are extremely attractive to the developer community looking to embed communications into their webpages without the need for plug-ins, and in theory without interoperability and networking compatibility issues. The categories cited are:
- Webcam Access. Access to the microphone and camera allows the application to manipulate and capture user-submitted audio and video much like Flash.
- Peer Connection. The ability to easily transmit audio and video from peer to peer presents the opportunity to create real-time interactivity between users.
- Data Channels. Although not enabled in the current WebRTC distribution, the upcoming feature to allow applications to transfer data between peers could revolutionize the Web, removing the need for an intermediary server for users to interact.
A good way of thinking about all of this is ending the Tower of Babel that currently frustrates users’ ability to communicate over the Web via voice and/or video. It is rightfully being deemed a “game- changer” much in the way that things like Group III facsimile and SMS before it enabled simple and seamless fax and text messaging.
WebRTC is called a package because of its various components which are:
The WebRTC project offers a complete stack for voice communications. It includes not only the necessary codecs, but other components crucial for a great experience. This includes software-based acoustic echo cancellation (AEC), automatic gain control (AGC), noise reduction, noise suppression and hardware access and control across multiple platforms.
The WebRTC project builds on the VP8 codec, introduced in 2010 as part of the WebM Project. It includes components to conceal packet loss, clean up noisy images as well as capture and playback capabilities across multiple platforms.
Dynamic jitter buffers and error concealment techniques are included for audio and video that help mitigate the effects of packet loss and unreliable networks. Also included are components for establishing a Peer to Peer connection using ICE / STUN / Turn / RTP-over-TCP and support for proxies. This technology comes in part from the libjingle project.
For more information about WebRTC, the organization has a very comprehensive FAQ section which covers such things as: the codecs supported, licensing, patents grants, accessing the code, etc.
Why is WebRTC a game-changer and why is it likely to take off quickly? The answer in many ways is as clear as the display on your computer, smartphone or tablet. After years of hype that we were entering an era of “rich media” where video would become dominant, the realities are that the time has arrived. Whether it be unified communications (UC) applications for business process optimization, video chat such as now offered by Google and Apple, simplified VoIP from your browser or a host of streamed video apps, the need for seamless interoperability of voice and video from a browser’s time has come.
If you would like to learn more about WebRTC and the reason for all of the excitement and are in the San Francisco area, drop in at the WebRTC Conference & Expo, happening November 27-29 at the South San Francisco Conference Center.
Edited by Braden Becker