WebRTC - X3Dom video conference App

WebRTC

WebRTC stands for Web Real-Time Communication. The goal of WebRTC is to use real-time communication among browsers in a peer-to-peer communication without the use of plugins.
WebRTC consists of three APIs which are MediaStream, RTCPeerConnection and RTCDataChannel.
MediaStream use getUserMedia() function to obtain audio and video. Specifically, getUserMedia() requests access to data streams for instance the user’s camera and microphone.
RTCPeerConnection is used to provide both stability and efficiency communication of streaming data among peers. RTCPeerConnection refers to audio and video calling to ease encryption and bandwidth management. RTCPeerConnection permits the direct communication between two peers (users) browser-to-browser.
RTCDataChannel empowers peer-to-peer communication to interchange arbitrary data providing low latency and high throughput.

There are three different WebRTC networks. There is STUN network, TURN network and ICE network.
STUN stands for Session Traversal Utilities for NAT which is a client-server protocol. STUN discovers the user’s public IP address and gives permission to data flow for instance real-time voice, video, and messaging peer-to-peer.
TURN stands for Traversal Using Relays around NAT. TURN is used to receive incoming data over TCP or UDP connections.
ICE stands for Interactive Connectivity Establishment which is a framework for connecting peers. ICE mission is to try to find the best path choosing between STUN and TURN.
Ultimately, WebRTC uses Opus, iSAC and iLBC audio codecs and VP8 video codec.

X3Dom

The combination between WebGL and JavaScript has led to the development of X3DOM, an open-source framework, which allows us to work with 3D content without the use of plugins.