Wednesday, July 30, 2014

WebRTC an overview

WebRTC is a free open project that enables web browsers with Real Time Communication capabilities via simple Javascript APIs. The WebRTC components have been optimised to best serve this purpose.

The WebRTC initiative is a project supported by Google, Mozilla and Opera. The webpage given in reference is initiated by Google Chrome team.

Below are few terms we should be familiar on the WebRTC front.



Web App
This is the component which is a web application enabled with audio and video capabilities powered by the web APIs for real time communication.

Web API
This is the set of APIs which is used by the web developer to make real time chat applications

WebRTC native C++ API
This is the API layer which enables browser makers to easily implement the Web API proposal.

Transport / Session
The session components are built by re-using components from lib jingle, without using or requiring the xmpp/jingle protocol.

RTP Stack
A network stack for RTP, real time protocol

STUN/ICE
A component which allows calls to make use of STUN or ICE mechanisms to establish connection across various types of networks.

Session Mananagement
An abstract session layer, allowing calls setup and management layer. This leaves protocol implementation decision to the application developer.

Voice Engine
VoiceEngine is the framework for the audio media chain, from the sound card to the networks.

iSAC, iBLC, Opus
iSAC : A sideband and super sideband audio codec for VoIP and streaming audio. iSAC uses 16khz or 32 KHz sampling frequency with an adaptive and variable bit rate of 12 to 52 kbps

iLBC: A narrowband speech codec for VoIP and streaming audio. Uses 8KHz sampling frequency with a bit rate of 15.2 kbps for 20 ms frames and 13.33 kbps for 30ms frames.

Opus: Supports constant and variable nitrate encoding from 6Kbp/s to 510 kbit/s frame sizes from 2.5ms to 60ms and various sampling rates from 8KHz (with 4KHZ bandwidth) )to 48KHz (with 20KHz bandwidth where entire hearing range of human auditory system can be reproduced.)

NetEQ for voice
A dynamic jitter buffer and error concealment algorithm used for concealing the negative effects of network jitter and packet loss. This keeps latency as low as possible while ensuring high audio quality.

Acoustic Echo Canceller(AEC)
AEC is a software based signal processing component that removes in real time the echo resulting from audio being played out coming into the active microphone.

Noice Reduction (NR)
The NR component is software based signal processing component that removes certain types of background noise usually with VoIP. (Hiss, fan noise etc)

Video Engine
Video engine is a framework video media chain for video. from camera to network, and from network to the screen.

VP8
Video codec from the WebM project. Well suited for RTC as it is designed for low latency.

Video Jitter buffer
Dynamic jitter buffer for video. Helps conceal the effects of jitter and packet loss on overall video quality.

Image enhancements
This component removes the video noise from the image captured by the webcam.

References:

No comments:

Post a Comment