Fault Tolerance and Error Correction in WebRTC

Fluctuating NetworksDynamic Bandwidth estimation JitterBuffer SDP renegotiationDemand for High Quality Video Tradeoff between Latency vs Quality Layering for adaptive streamingBetter compression algorithms vs CPU computeFull INTRA-frame Request (FIR)Picture Loss Indication (PLI)Redundant Encoding (RED) in Media Packets CongestionFeedback Loop Overcome congestion with lower bitrate Reduce frame quality and resolution Congestion control Algorithms : Google Congestion Control … Continue reading Fault Tolerance and Error Correction in WebRTC

AEC (Echo Cancellation) and AGC (Gain Control) in WebRTC

Acoustic EchoHybrid / Electronic Echo in PSTN phonesNoise Suppression in WebRTCEcho CancellationWebRTC Echo CancellationAutomatic Gain Control (AGC) Echo is the sound of your own voice reverberating. If the amplitude of such a sound is high and intervals exceed 25 ms, it becomes disruptive to the conversation. Its types can be acoustic or hybrid. Echo cancellers … Continue reading AEC (Echo Cancellation) and AGC (Gain Control) in WebRTC

SCTP (Stream Control Transmission Protocol)

SCTP is a reliable, message-oriented transport layer protocol. It was initially developed for telephony signaling (specifically for SS7 (Signaling System No. 7)) over IP, which requires robust and reliable messaging, but is widely used in WebRTC for data channels today as a standard. Being suitable for high availability , fault tolerant networks it is a … Continue reading SCTP (Stream Control Transmission Protocol)

Performance of WebRTC sites and electron apps

As security is a broad topic touching on many sections of WebRTC this section is not meant to address all topics but instead to focus on specific “hot spots”, areas that require special attention due to the unique properties of the WebRTC service. —There are several security related topics that are of particular interest with respect to WebRTC. They can be grouped into the following areas: Identity Management Browser Security Authentication Media encryption Syntax checks using regex

WebRTC Audio/Video Codecs

WebRTC Video CodecsVP8VP9H264/AVC constrainedAV1 (AOMedia Video 1)Stats for video based media stream trackNon WebRTC supported Video codecs H.263H.265 / HEVCWebRTC Audio CodecsOpusAACG.711 (PCMA and PCMU)G.722iLBCiSACSpeexAMR-WB DTMF and 'audio/telephone-event' media typeStats for Audio Media trackDataChannelStats for Datachannel Codecs signifies the media stream's compession and decompression. For peers to have suceesfull excchange of media, they need a common … Continue reading WebRTC Audio/Video Codecs

WebRTC APIs

WebRTC (Web Real-Time Communication) provides a set of JSEP APIs that enable real-time peer-to-peer (P2P) communication in web browsers. These handle media capture, encoding, network traversal (ICE), and secure data transmission. This article describes those in detail and also highlights usecases around varying states of these APIs. MediaDevices getUserMedia()getDisplayMedia()enumerateDevices()getSupportedConstraints()MediaStream and MediaStreamTrackPeer-to-peer connectionsRTCPeerConnection InterfaceCreateOffer() CreateAnswer()Offer/Answer Options - VoiceActivityDetectionRTCSessionDescriptionProfile … Continue reading WebRTC APIs

Unified Plan SDP format in WebRTC

Plan B vs Unified Pan Interoperability between unified plan and plan B Until recently a customised or property extension could signal multiple media streams within an m-section of an SDP and experiment with media-level "msid" (Media Stream Identifier ) attribute used to associate RTP streams that are described in different media descriptions with the same … Continue reading Unified Plan SDP format in WebRTC

JavaScript Session Establishment Protocol (JSEP) in WebRTC handshake

SEP is used during signalling via w3c's recommended RTCPeerConnectionAPI interface to set up a multimedia session. The multimedia session description specifies the critical components of setting up a session between local and remote such as transport ports, protocol, profiles. It also handles the interaction with the ICE state machine.

WebRTC CPaaS ( Communication Platform as a Service )

CPasS ( communication platform as a service ) is cloud based communication platform that provides real time communication capabilities. This should be easily integrable with any given external environment or application of the customer, without him worrying about building backend infrastructure or interfaces .

Crticial Communication

Types of critical communications Major Components of Critical Communication Service E911 (Enhanced 911) Next Generation Core Services (NGCS) and NG911 Push to talk for firefighters Mission Crticial Communication Criticala communication services are essential for maintaining public safety and security, as well as for supporting critical infrastructure and operations. These services include: Emergency ServicesE911 (Enhanced 911), … Continue reading Crticial Communication

Session Border Controller (SBC) for WebRTC

SBC became important part of comm systems developed over SIP and MGCP. SBC offer B2BUA ( Back to Back user agent) behavior to control both signalling and media traffic.

Setting up ubuntu ec2 t2 micro for webrtc and socketio

Setting up a ec2 instance on AWS for web real time communication platform over nodejs and socket.io using WebRTC . Primarily a Web Call , Chat and conference platform uses WebRTC for the media stream and socketio for the signalling . Additionally used technologies are nosql for session information storage , REST Apis for getting sessions details to third parties.

AR/VR on WebRTC WebGL , Three.js and WebRTC

For the last couple of weeks , I have been working on the concept of rendering 3D graphics on WebRTC media stream using different JavaScript libraries as part of a Virtual Reality project . AR vs VR WebRTC WebGL Three.js WASM/OpenGL What is Augmented Reality ? Augmented reality (AR) is viewing a real-world environment with … Continue reading AR/VR on WebRTC WebGL , Three.js and WebRTC

TFX Widgets Development

TangoFX Sessions is a customizable solution where developers can create and add their own widget over the underlying WebRTC communication mechanism . It can support extensive set of user activity such as video chat , message , play games , collaborate on code , draw something together etc . It can go as wide as your imagination .