tadhack google keynote niklas blum 2015

16
Google Confidential and Proprietary WebRTC Update TADHack 2015 Niklas Blum Product Manager at Google

Upload: alan-quayle

Post on 03-Aug-2015

289 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: TADHack Google Keynote Niklas Blum 2015

Google Confidential and Proprietary

WebRTC UpdateTADHack 2015Niklas Blum Product Manager at Google

Page 2: TADHack Google Keynote Niklas Blum 2015

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

Page 3: TADHack Google Keynote Niklas Blum 2015

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

Page 4: TADHack Google Keynote Niklas Blum 2015

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

Page 5: TADHack Google Keynote Niklas Blum 2015

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

Page 6: TADHack Google Keynote Niklas Blum 2015

Google Confidential and Proprietary

600+ Companies built their solution on WebRTC

Google HangoutsFacebook MessengerCitrixTokBoxSinchTwilioWireTalko Comcast

Amazon MaydayOracleUberConferenceDouble RoboticsVonageWebExAppear.in / TelenorHello (Firefox)AT&T...

Page 7: TADHack Google Keynote Niklas Blum 2015

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

Page 8: TADHack Google Keynote Niklas Blum 2015

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

Page 9: TADHack Google Keynote Niklas Blum 2015

Google Confidential and Proprietary

WebRTC Improvements under the hoodBefore:

After:

Better bandwidth estimation for video● 62% improved on congested Wifi● 20% higher bitrates

Page 10: TADHack Google Keynote Niklas Blum 2015

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

Page 11: TADHack Google Keynote Niklas Blum 2015

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

Page 12: TADHack Google Keynote Niklas Blum 2015

Google Confidential and Proprietary

Page 13: TADHack Google Keynote Niklas Blum 2015

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); }

Page 14: TADHack Google Keynote Niklas Blum 2015

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

Page 16: TADHack Google Keynote Niklas Blum 2015

Google Confidential and Proprietary

Feel free to come and ask!

@[email protected]

Thank you - time for questions!