Google Confidential and Proprietary WebRTC Update TADHack 2015 Niklas Blum Product Manager at Google
Google Confidential and Proprietary
WebRTC UpdateTADHack 2015Niklas Blum Product Manager at Google
Google Confidential and Proprietary
WebRTC is a Platform
● It provides a real-time voice, video and data communication stack to apps
● Supports JavaScript and native APIs for Android and iOS
● Uses/defines industry-standard protocols and codecs
Google Confidential and Proprietary
Goal: Enable Developers by encapsulating Complexity of RTC
Web API Chrome / Firefox / Opera / MS
Edge
WebRTC C++ API (PeerConnection)
WebRTC
Encryption (DTLS-SRTP) + Multiplexing
Web
app
iOSLib
Android Lib
iOS app
Androidapp
P2P - STUN + TURN + ICE, UDP/TCP, IPv4/v6, Proxies
Network Bandwidth Estimation
SCTP
DataCodecs (Opus, etc)
Gain Ctrl, Echo Cancel
Audio
Audio Capture/Playout Video+Screen Capture/Render
VP8 / H.264 Codec
Video
W3C
IETF
Noise/Transient Filter
Dejitter/PLC/FEC
Error recovery/FEC
Noise/Postproc Filter
HW Codec Integration
Config
Buffering
SDP Processing Engine
Google Confidential and Proprietary
Google is pushing WebRTC forward
● Strive to be best on web, Android, and iOS
● 100% open source and royalty free (even the codecs)
● Standardized APIs and Protocols
● New releases every 6 weeks
Google Confidential and Proprietary
What’s in for you as a developer & service provider
1.5 bln browsers ready for your appWaiting for you to develop for them.
3 bln apps downloadedThe secret is out. WebRTC works on mobile.
600+ companiesThat depend on our WebRTC work to succeed
Google Confidential and Proprietary
600+ Companies built their solution on WebRTC
Google HangoutsFacebook MessengerCitrixTokBoxSinchTwilioWireTalko Comcast
Amazon MaydayOracleUberConferenceDouble RoboticsVonageWebExAppear.in / TelenorHello (Firefox)AT&T...
Google Confidential and Proprietary
What’s there for you as a developer
4000+ dev listEach has posted at least once.
2000+ a day read our docswebrtc.org html5rocks.com
1000 view our samplesgithub/webrtc
Google Confidential and Proprietary
Examples: What can be built on top of WebRTC
● Plug-in free audio and video conferencing: appear.in● Mobile RTC: Facebook Messenger● File Sharing: Sharefest● Screen sharing: talky.io
Beyond communications apps:● Multi-player gaming: BananaBread ● Content Delivery Networks: PubNub● Payments: Copay.io
Google Confidential and Proprietary
WebRTC Improvements under the hoodBefore:
After:
Better bandwidth estimation for video● 62% improved on congested Wifi● 20% higher bitrates
Google Confidential and Proprietary
Fast track to HD Video
47 % of Mac 42 users have HD video in 2 sec (31% had this in M40)
Further improvements for M44
Google Confidential and Proprietary
Further Video Performance Improvements
● Zero-copy capture and render pipelines
● 10x Windows speedups for rendering
● VP8 hw encode/decode on Android
● Major iOS speedup for libvpx
● Faster colour conversions
● Reduction in thread contention
Google Confidential and Proprietary
Google Confidential and Proprietary
How to create a WebRTC call on MobileWeb: RTCPeerConnection
Android: org.webrtc.PeerConnection
iOS: RTCPeerConnection
pc = new RTCPeerConnection(config);
pc.onaddstream = onRemoteStream;
pc.addStream(localStream);
pc.createOffer(onCreateSuccess);
function onCreateSuccess(offer) {
sendMessage(offer); }
PeerConnection pc =
factory.createPeerConnection
(iceServers, constraints, observer);
pc.addStream(localStream);
pc.createOffer(this, offerConstraints);
public void onCreateSuccess(
final SessionDescription offer) {
sendMessage(offer); }
RTCPeerConnection* pc = [factory
peerConnectionWithICEServers:iceServers
constraints:constraints delegate:self];
[pc addStream:localStream];
[pc createOfferWithDelegate:self
constraints:offerConstraints];
- (void)peerConnection:(RTCPeerConnection
*)peerConnection
didCreateSessionDescription:
(RTCSessionDescription *)offer
error:(NSError *)error {
sendMessage(offer); }
Google Confidential and Proprietary
Coming up: Mobile Improvements
● Faster connection establishment
● Faster crypto keygen and encryption/decryption
● Better network robustness
● Better adaptation to network QoS changes
● Rate adaptation for audio
● Delay and Jitter improvements
Google Confidential and Proprietary
g.co/webrtcappr.tc
test.webrtc.org
Google Confidential and Proprietary
Feel free to come and ask!
Thank you - time for questions!