Web Real-Time Communication (WebRTC) allows applications such as audio and video chat, file sharing, messaging, whiteboarding, gaming, human computer interaction, and more, to operate within a web browser without downloading any additional client or plugin.
In the real-time communication world, reliability and ease of use are two vital factors for building rich applications. WebRTC is designed for developers to use simple JavaScript APIs embedded directly in the browser.
Birth of WebRTC
WebRTC is designed and developed by the engineering team working on Google Hangouts. While developing the Google Video Chat plugin, they realized the need of a tool that could place the video and voice technology directly into the web browser.
Google spent nearly $200 million in acquisitions to develop this tool. Back in 2010, Google bought On2 for $125 million. The company was the owner of the VP8 video codec. It was swiftly released as an open source codec to be used with both WebRTC and HTML5 video tag. Later that year, Google bought GIPS for $68 million. The GIPS technology constitutes the foundation of the voice engine utilized in the Chrome implementation of WebRTC.
Google invested nearly $200 million in WebRTC in 2010. By the end of April 2011, the IETF RTCWeb Working Group was created and was assigned to standardize the protocols used in WebRTC.
WebRTC’s magic
WebRTC depends on three JavaScript APIs added directly into the web browsers. Thus, freeing it from using any additional plug-in or client to communicate directly with another WebRTC enabled browser. Below are some APIs that explains the magic behind WebRTC:
- MediaStream: The MediaStream (also known as getUserMedia) is an API that started as an HTML5 API but later categorized under WebRTC specification. This interface is used to represent streams of media data, typically audio or video content. This allows web browsers to communicate directly with a device’s camera and microphone, thus removing the need for additional plug-ins like Flash and Silverlight.
- RTCPeerConnection: This part of the WebRTC is also known as PeerConnection. It allows a user to communicate with another user through a browser-to-browser connection. Communications are coordinated via a signaling channel which is generally provided by a script in the page.
- RTCDataChannels: RTCDataChannel helps creating a peer-to-peer connection between two users through a browser for a safe, quick and affordable data transfer. A RTC DataChannel works with RTCPeerConnection, which enables peer-to-peer connectivity with lower latency, no intermediary server, and fewer hops.
At present only Chrome, Firefox and Opera browsers are compatible with the native WebRTC APIs, but using free plugins like Temasys Jira, you can expand WebRTC capabilities to Internet Explorer and Safari.
Things we can do with WebRTC
WebRTC enhances applications’ performance and user experiences. With WebRTC a developer can enhance following features:
- Video Communications: With WebRTC you can create safe and high definition (HD) audio and video connections between browsers.
- File Sharing & Messaging: You can safely join and share data between browsers. This way we don’t have to upload files to the cloud or a network server. Data is sent directly between the connected browsers.
- Phone to the Browser: It allows connections between telephones and browsers. A user can make and receive calls with the use of the new APIs in HTML5, a SIP Gateway & WebRTC.
- Mobile to Mobile: WebRTC is not just for the web, iOS and Android both have native libraries that can use the WebRTC capabilities.
Wrap Up
WebRTC is a promising tool and offers a lot of opportunities to help in bringing enriched, high quality and affordable real-time communications to the world. What we have seen with WebRTC so far is just the tip of the iceberg and we are very excited at the prospect of having access to some fantastic applications in the near future.