What is webRTC
WebRTC (Web Real Time Communication) is an Application Programming Interface (API) developed by the W3C that is still on development and being standardized by the RTCWEB IETF group. Its main goal is to allow peer-to-peer communication between web browsers. This communication can be used to transfer multiple type of data: files, video or audio.
Why it is important
WebRTC is an API that allows you set up a channel of communication between browsers for video and data. It is built directly into browsers (Chrome, Mozilla, Opera, and a few others), so no external plugin or software is needed.
How webRTC works
WebRTC has three major components on which it is designed to work.
getUserMedia: This allows browser or the native app gain access to the device’s camera and microphone to capture the video.
RTCPeerConnection: This allows audio-video calls set up in the device.
RTCDataChannel: This allows the browser or the native app to get peer-to-peer communication established between the devices.
It is designed to do multiple tasks but setting up this real time peer-to-peer audio video call is the prime advantage.
Therefore, each device gets its public IP. So, as to detect other devices trying to make a connection, signalling data channels are created which support the device to device communication and hence a session is established.
webRTC and support with ios
Many browsers already started support for webRTC long before because they knew the importance and its significance in current functionality. Web and mobile applications are using webRTC to deliver the quality products. After see its future, finally Apple Announces Support for WebRTC in Safari 11. On January 19, Apple checked WebRTC support into the WebKit open-source project upon which Safari is based. This is kind of a big deal because it suggests that WebRTC will eventually make its way into Safari.
But on a mobile device, things aren’t so clean. While you can wrap WebRTC into into your app for iOS, it’s not native. For the other ~ 82% of the world who are using Android, you can build a native web app with WebRTC. Unfortunately iOS has whopping 43% market share in the US and you can’t ignore that. Thus the lack of native WebRTC on iOS has been a show stopper for trying to deploy a browser base communications applications on any mobile platform. The math doesn’t work.
why webRTC is popular
There are so many interesting use cases for WebRTC that I do not know where to start:
Hangouts is an application I use every day and it is powered by WebRTC. SnapChat uses it, and WhatsApp plans to incorporate it if they add voice calling service. Bank of America plans to add video chat customer support services, powered by WebRTC, to their ATM machines. PeerCDN uses WebRTC’s DataChannel to exchange files across a huge network of clients. An independent developer even used WebRTC to remotely control a robot’s movement(Icecomm+ Virtual Karl).
Pretty much any application that wants to share data or video between peers can use WebRTC. The reason for this massive adoption is that browser to browser communication is significantly cheaper than going through a server (up to 90% cheaper from Video Banking and the Economics of the Retail Business).
Splendornet and webRTC
Splendornet and webRTC are together since ages because we knew its impact on the future world. We have always encouraged web socket based technology because an application should accomplish the task in lesser amount of time even the size of transaction is very big. We have developed web based multi-user video conferencing system with webRTC and it is working quite fine and efficiently. Similarly we used webRTC in mobile based audio-video chat system which gives user an effortless experience.
These are the applications where we have used webRTC and our clients are quite happy and satisfactory with the results.
1. Use getUserMedia with canvas and CSS filters
2. Stream from a video element to a video element
3. Stream from a video element to a peer connection
4. Record a stream from a canvas element
5. Change bandwidth on the fly
6. Multiple peer connections at once
7. Display peer connection states
8. Web Audio output as input to peer connection
9. Peer connection as input to Web Audio
Apart from the communication applications, there are many functionality where we use webRTC to make it working with perfection.