cwh.consulting
WebRTC Check-In
WebRTC Boston 6
February 5, 2019
cwh.consulting
A blog for WebRTC developers
webrtcHacks.com
@webrtcHacks
AI & RTC blog
cogint.ai
@cogintai
WebRTC and ML for Developer Event
November 16, 2018 in San Francisco
krankygeek.com
About Me
Chad Hart
Analyst & Product Consultant
https://cwh.consulting
@chadwallacehart
chad@cwh.consulting
cwh.consulting
What can you do with WebRTC?
cwh.consulting
What can you do with WebRTC?
Low-latency real-.me streaming
Example:
cwh.consulting
What can you do with WebRTC?
Latency-sensitive real time audio, video, and screenshare for gamers
Example:
cwh.consulting
What can you do with WebRTC?
Peer-to-Peer Data Through Firewalls
Example:
cwh.consulting
What can you do with WebRTC?
Secure communications
Example:
cwh.consulting
What you get with WebRTC?
cwh.consulting
What you get with WebRTC:
Camera and microphone capture
navigator.mediaDevices.getUserMedia()
https://www.w3.org/TR/mediacapture-streams/#mediadevices
cwh.consulting
What you get with WebRTC:
List available media devices
navigator.mediaDevices.enumerateDevices()
https://www.w3.org/TR/mediacapture-streams/#dom-mediadevices-enumeratedevices
cwh.consulting
What you get with WebRTC:
Audio output device selection
HTMLMediaElement.setSinkId()
https://www.w3.org/TR/audio-output/
cwh.consulting
What you get with WebRTC:
Screensharing & desktop capture
navigator.mediaDevices.getDisplayMedia()
https://www.w3.org/TR/mediacapture-streams/#mediadevices
cwh.consulting
What you get with WebRTC:
Screensharing & desktop capture
navigator.mediaDevices.getDisplayMedia
h"ps://w3c.github.io/mediacapture-screen-share/
cwh.consulting
What you get with WebRTC:
Media recording
MediaRecorder
https://www.w3.org/TR/mediastream-recording/
cwh.consulting
What you get with WebRTC:
Peer-to-Peer Media
RTCPeerConnection
https://www.w3.org/TR/webrtc/#rtp-media-api
cwh.consulting
What you get with WebRTC:
Peer-to-Peer Data
RTCPeerConnection.createDataChannel()
https://www.w3.org/TR/webrtc/#peer-to-peer-data-api
0101 1010
cwh.consulting
What you get with WebRTC:
Connection statistics
RTCPeerConnection.getStats()
https://www.w3.org/TR/webrtc/#sec.stats-model
cwh.consulting
Vendor Google Microsoft Mozilla Microsoft Apple
Browser Chrome Internet Explorer Firefox Edge Safari
Desktop ! ⛔ ! !
Android ! # ! # #
iOS # #
!
⛔ !⛔
WebRTCBrowser Support
cwh.consulting
Desktop
Mobile
✅
✅
Native Environments
cwh.consulting
Types of WebRTC Servers
Signaling
NAT
Traversal
Media Gateway
Always needed Needed for production Depends on the app Depends on the app
cwh.consulting
Swatting NATs
STUN TURN
Traversal Using Relay NATSession Traversal U/li/es for NAT
Lightweight mechanism for finding a
device’s own public IP address behind a
NAT
Heavy mechanism that relays media
through a publicly addressed server
when other connectivity fails
cwh.consulting
Reasons you might need a media server
Mul$-party Recording
Heavy media
manipulation
Live
broadcast
Kranky Geek São Paulo 2016
cwh.consulting
The Mesh Problem
Client Client
Client
Client
Client
Client
Clients Streams
/ client
Total
6 10 30
You can only connect so many points
in a peer-to-peer mesh architecture
before it overwhelms local resources
cwh.consulting
Selective Forwarding
Unit (SFU)
Client Client
Client
Client
Client
Client
Clients Streams
/ client
Total
n n n2
SFU
A SFU is a kind of media servers.
Relaying media via a SFU is the
best-practice way to handle multi-
party conference calls with more
than a few participants.
cwh.consulting
cwh.consulting
Machine Learning-based media
manipulation is coming to WebRTC
https://w3c.github.io/webrtc-nv-use-cases/#funnyhats*
cwh.consulting
WebRTC Next Version – more options
App
peerConnection
OG WebRTC WebRTC NV
Browser
Application
code
Hear more from Google’s Kranky Geek 2018 talk: hAps://youtu.be/gV354kWh08o?t=1232
Lower-level API allow more control of
WebRTC parameters and interactions
Possibility to put low-level processing like
codecs in Web Assembly
cwh.consulting
WebRTC Next Version – newer tech
new video codec new transport protocol
cwh.consulting
A blog for WebRTC developers
webrtcHacks.com
@webrtcHacks
AI & RTC blog
cogint.ai
@cogintai
WebRTC and ML for Developer Event
November 16, 2018 in San Francisco
krankygeek.com
About Me
Chad Hart
Analyst & Product Consultant
https://cwh.consulting
@chadwallacehart
chad@cwh.consulting

WebRTC Check-in (from WebRTC Boston 6)