In the last few months, I have been keenly tracking how the course for WebRTC is turning out. In my opinion, it is an incredible game-changer and a market disrupter for the telco industry plagued by licensed codecs and heavy call session control software.
Contrary to my expectations the fundamental holes in WebRTC specification are still the same with less being done to fulfil them – Desktop sharing on Chrome Extension, media compatibility with desktop popular H264 being prominent obstacles to adoption. Of course, now there exists an abundance of interactive use-cases for WebRTC APIs from gaming to telemedicine. However, none of the applications is complete and standalone since each uses a new gateway to connect to their existing platform or service.
As new webrtc SDKs and open-sourcing platforms surface, many seem to be wrapping around the same old WebRTC functions ( getusermedia data-channel and peer-connection ) with few or no addons. Few of I am listing down some popular working ones in this blog but there still exists no concrete stable reliable guide to set up the backbone network ( yes I am referring to Media interconversion, relay, TURN, STUN servers ). It is left to a telecom software engineer/developer to find and figure out the best integrations to configure session handling and PSTN or desktop application compatibility.
Well moving on , here are some nice API implementations of WebRTC ( only for Websockets no SIP/WebSockets ) which can be quickly used by web developers to create peer to peer media session on web endpoints via a WebRTC supported browser web page.
Neat process of setting up offer-answer and SDP . Notice the Relay candidate gathering
Session Description ( SDP) for the WebRTC peer with audio / video codecs and other session specificatiosn such as bitrate , framerate , codec profile , RTP specs etc.
No over the top media control which is good as media flows end to end here without any centralized media server .
Also related to SimpleWebRTC which is a lightweight MIT licensed library providing wrappers around core WebRTC API to support application building while easing the lower level peerconnection and session management from developer.
Simmilar offer-answer handshake and SDP excahnge.
There seems to be better noise control management which could be my browser acting on my fluctuating network bandwidth as well .
More control from UI on Media settings which is provided as part of getusermedia in WebRTC specification. Read more about the webrtc APIs in my other writeup
Simmilar to previous WebRTC session ( totally dependant on my own network and CPU ) , independant of any thord party control .
As my peers network degrated , my webrtc session automatically adjust based on RTCP feedback to send lower resolutions and framerate.
Open source MIT licensed libray to spin up Webrtc calls quickly and easily from a chrome supported browser . It is a fork of best features from multiple libraries such as apprtc , webrtcexperiments , simplewebrtc and is maintained by n open community of users including me.
WebRTC Media Stack is explained in following articles
Codecs signifies the media stream’s compession and decompression. For peers to have suceesfull excchange of media, they need a common set of codecs to agree upon for the session . The list codecs are sent between each other as part of offeer and answer or SDP in SIP. As WebRTC provides containerless bare mediastreamgtrackobjects. Codecs … Continue reading WebRTC Audio/Video Codecs
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 MediaStreams. However, with the transition to a unified plan, they will experience … Continue reading Unified Plan SDP format in WebRTC
continue : Streaming / broadcasting Live Video call to non webrtc supported browsers and media players
This blog is in continuation to the attempts / outcomes and problems in building a WebRTC to RTP media framework that successfully stream / broadcast WebRTC content to non webrtc supported browsers ( safari / IE ) / media players ( VLC )
As the title of this article suggests I am going to pen my attempts of streaming / broadcasting Live Video WebRTC call to non WebRTC supported browsers and media players such as VLC , ffplay , default video player in Linux etc. Some of the high level archietctures for streaming Webrtc Video to multiple endpoints … Continue reading Streaming / broadcasting Live Video call to non webrtc supported browsers and media players
SDP signaling and negotiation for media plane Read more on SDP and its attributes : https://telecom.altanai.com/2014/01/03/sip-in-depth/(opens in a new tab) Media plane adaptation is done at the SBC for network carried media, it should be done for all network hosted media services which face peer-to-peer media. The high-level architecture elements of WebRTC media streams can be divided … Continue reading WebRTC Media Streams