What is WebRTC?
WebRTC is an open source project that provides browsers and mobile applications with Real-Time Communications (RTC) capabilities via simple APIs. The WebRTC components have been optimized to best serve this purpose
- Web Real-time Communication
- Interoperation across vendors
- Standards managed by W3C and IETF
- Open-Source Mobile
- Gets audio/video to/from a and b fast
- Critical mass across browsers and devices
– no need to reinvent the wheel
– lower friction due to “no plugin” installation
– User control over permissions
- Easy to work with
– Leverage HTML5/Javascript
– Lots of APIs (getUserMedia,RTCPeerConnection, RTCDataChannel, getStats)
- Click a link: connected!
- A lot of hype but perhaps not overhyped
Collaboration WebRTC Adoption
- Collab’s choice of WebRTC was not so straightforward
- in 2014
– Poor browser support (chrome early Firefox)
– Codec wars in effect - Collaborate’s choice: Use WebRTC to deliver browser-based conferencing
– What about Collaboration original
– Only Chrome was mature enough at the time to meet market expectations
– Multiple HQ videos with good sync
– Desktop Sharing
– Other browsers use flash required (one video no desktop sharing)
– We’ve been adding additional browsers as they mature Firefox in 2016, Safari 11 and Edge are on the way)
– Flash end of life: 2020
- Codec Wars
- SDP vs ORTC
- Browser Compliance
- Browser Permissions
Codec Wars:
- Audio agreed to: OPUS
– High speed collision between technologies
– Low bit rates for speech
– High bit rates for music
– Forward Error Correction - Video- not so much
– VP8 from the Google Camp
– H.264 from the Cisco/Apple/Microsoft
– No significant performance difference, we don’t care!
– Patents main blocker for H.264
– Finally Solved by MPEG LA (via Cisco) giving it away.
- How to describe the details for the media session?
– Capabilities and connectivity between peers
- Session Description Protocol
– Text-based and very complex for multi-channel
– Existing browsers use SDP
– Even here, two different versions: Unified Plan vs Plan B
- Object Real-Time Communications
– Simpler and less proscriptive
– Microsoft used ORTC and not SDP for Edge
Browser Compliance
- After years of in-fighting we have a standard: WebRTC 1.0
– Working Group first created in May 2011
– Originally expected to finish end of Feb 2013
– Last call Started October 2016
– First candidate Recommendation: November 2017 - Browsers have different degrees of adherence to standards
- Adapter.js Serves to normalize subtle browser differences
- Microphone/camera access
- The camera light
- User fingerprinting
- Local IP address enumeration
WebRTC Connections
- We’ve exchanged SDP; now how do we connect to send/receive audio and video?
- Simplest case almost never works – users are very rarely connected to directly to the internet
- Need to handle a wide range of possible network configurations
- Network Address Translations
- IPv4 address limitations: running out of IP Addresses
- Works fantastically well for normal web requests
- Terrible for real-time media
- User Datagram Protocal
– fast, buy lossy “best effort” - Transmission Control Protocol
– reliable, but slow “guaranteed” - For real-time media, time is king: prefer loss over delay
- Transport Layer Security
– Encrypted, secure, private
– For UDP or TCP




- Hybrid
- Adaptable
Bandwidth adaptation
- Packet Loss: sequence Numbers
- Latency: time stamp

- How our MCU technology improves the experience
– Differing bandwidth
– Quantizing Modes
– Three Bands
– High bit rate (pass through)
– Low bit rate
– Ultra low bit rate
Key Differentiators
- prioritization
– audio: by adapting quickly, we can ensure that video bandwidth does not interrupt audio traffic
– video: high quality video for primary speaker and/or desktop sharing - Customization
– Each viewer gets the best quality available to them,based on their bandwidth - Scale
– Collaborate supports 500 users in a single session.
- Scalable Video Coding: VP9 vs H.265 -> VC1
- Data Channels
– Chat/Subtitles
– File transfers
– Synchronization/Gaming
- An enabling technology: endless applications
– AI agents: bots!
– Internet of Things
Future Adaptations for Collaborate and WebRTC
- Prepare for Flash EOL (2020)
– Safari 11 and Edge native support (on the roadmap)
– Plugin for Safari 10 and IE11, and/or end support - Example feature Requests
– Dedicated video channels (sign language, labs, presentations)
– More Videos
– Primary limitation is available bandwidth
– Desktop Cursor Control
– WebRTC desktop sharing is not VNC
Leave a Reply