Astricon WebRTC Update
Transcript of Astricon WebRTC Update
WebRTCAstricon 2016
AboutMe
1October2016 ChadWallaceHart 2
HeadofStrategicProductshttps://[email protected]
AblogforWebRTCdevelopershttps://webrtcHacks.com@webrtcHacks
WebRTCevents&videoshttps://www.krankygeek.com/@webrtclive
3
A recap of the past 5 years…
4
World Class VoIP Engine for Free
media engine
video codec
audio codec
5
Internet & Web Standard
6
3(ish) Web-friendly(+native) API’s
Peer-to-peerRTCconnectivity
peerConnection
StreamCapture
getUserMedia
Arbitraryp2pdatatransmission
dataChannel
Camera,Microphone,Screen
7
State of the art technology
Medianegotiation
Firewall/NATTraversal
Audiocodecs
Videocodecs
Flowcontrols
Encryption
8
Massive community
.org
Toomanyprojectstoputonaslide
9
This is awesome!
10
Who uses WebRTC?
WebRTCdetails:https://webrtchacks.com/facebook-webrtc/Imagesource:http://www.nerddict.com/2016/06/download-facebook-messenger-for-windows.html
300 million monthly active usersLess than 3 years since launch
11
Who uses WebRTC?
12
Who uses WebRTC?
13
Who uses WebRTC?
14
Who uses WebRTC?Old school telephony people
15
Who uses WebRTC?New school telephony people
16
WebRTC After 5 years: Google’s stats
• 2 Billion+ WebRTC Browsers• 1 Billion+ minutes/week• 950+ companies & projects• 5 Billion+ WebRTC app downloads
https://groups.google.com/forum/#!topic/discuss-webrtc/I0GqzwfKJfQhttps://docs.google.com/presentation/d/1JwnW6v3OM0RfoDYrPPTJrDNeIpidgh7hF_k5E1j2oKM/edit?usp=sharing
1717Image source: http://www.digitaldealer.com/how-to-handle-recalls-and-other-bad-news/
18
WebRTC is not available everywhere
19
3 ways Apple hurts WebRTC
Safari OtherBrowserAppsoniOS
WebViewforiOS
Nosupportfordesktopormobile
70%ofusageoniOS
Nosupportforeasynativeapps
20%oftimesharevs.Browser,Android,Desktop
NooneelseisallowedtomakeaWebRTCBrowser
30%ofbrowsershareoniOS
❌ ❌ ❌
20
Apple Challenge: who do you care about?
©2016ChadWallaceHartConsulting
WebRTCSupport
WithinOSShare
AllBrowserShare*
AllTimeShare*
Desktop
brow
ser SafarionOSX x ~50% ~2% ~1%
Chrome/FirefoxonOSX ~50% ~2% ~1%
iOS
Brow
ser SafarioniOS ~70% ~20% ~2%
Chrome/Firefox oniOS ~30% ~10% ~1%
Mob
ileiOSap
p Webview oniOS- - ~20%
BringyourownRTConiOS x
SharefiguresareroughestimatesfromChadWallaceHartconsultingandstatcounter.com*Desktop&mobile
21
How Facebook handles browsers without WebRTC
22
Not completely lost on the Safari…
23
24
Edge is making steady progress
https://developer.microsoft.com/en-us/microsoft-edge/platform/status/screencapture/?q=category%3Arealtimecommunication
25
Edgeisgrowing,butstilltiny
http://gs.statcounter.com/#desktop-browser-ww-monthly-201606-201606-bar
26
IEwillcontinuetohavemoreshareforsometime
http://gs.statcounter.com/#desktop-browser-ww-monthly-201606-201606-bar
27
No IE, but lots of Microsoft
OldBrowser NewBrowser Comms App NativeApp
❌ ✔ ✔ ✔>500Musers >100M users >300MMAU >350MWin10users
+8.1 installbaseNosupportplanned ORTC+WebRTCsupport SkypeforWebmovingto
WebRTCAddingVisualStudiotoolingthat
includesWebRTC
WebRTC at Microsoft
28
29
Learning WebRTC can be hard
30
WebRTC requires you learn (or pay)WebTechnology PopularOpenSource Framework
WebCMS WordPress,Joomla,Drupal…
Front-End Development jQuery,Ember.js, Angular.js,React..
Front-endDesign Bootstrap, MaterialDesign,…
WebGL Babylon,three.js,…
WebSockets Socket.io
WebRTC
31
SignalingSTUN/TURNMedia server Photo by Flickr user Alex (CC BY-2.0)
https://flic.kr/p/9v7Kgx
32
Don’t forget TURN servers
14%
6%
The biggest issue in new WebRTC deployments is often the lack of a TURN servers.The rule of thumb is TURN is needed by about 20% of users, but this can very a lot depending on your user base. Tokbox’s figures from earlier this year are above.
33
Chrome requires SSL
getUserMedia() no longer works on insecure origins. To use this feature, you should consider switching your application to a secure origin, such as HTTPS. See https://goo.gl/rStTGz for more details.
34ChadWallaceHart 34
Codecs were a major point of contention in WebRTC.
That was resolved in the standards in late 2014.
There was a still a question when Google would join Firefox and support H.264 in Chrome.
EveryonedoesH.264/AVCnow..mostly
1October2016 ChadWallaceHart 35
https://groups.google.com/forum/#!topic/discuss-webrtc/bDfxOA8XiJI https://blogs.windows.com/msedgedev/2016/05/27/previewing-h-264avc-for-ortc/
36
About standards…
1October2016
37
NV
Standards converge
ThenextversionofWebRTCincorporateswhat’snewinORTCwhilemaintainingbackwardcompatibilitywithtoday’sWebRTC
ManyORTCobjectsarealreadyinWebRTC1.0PeerConnection
.getSenders()
.getReceivers()// Name TBD.addTransceiver(kind).sctp...
RtpSender.track.transport.getCapabilities().getParameters().setParameters(params).replaceTrack(track)...
RtpReceiver.track.transport.getCapabilities()
.getContributingSources()...
DtlsTransport.transport.state.getRemoteCertificates() .onstatechange...
IceTransport.state.getLocalParameters(), .getRemoteParameters(), .getLocalCandidates().getRemoteCandidates().getSelectedCandidatePair().onstatechange...
SctpTransport.transport
DataChannel.transport
RtpParameters.codecs.encodings...
RtpCodecParameters(read only).mimeType.payloadType...
RtpEncodingParameters.active.maxBandwidth(read only).ssrc...
IceParameters(read only).usernameFragment.password
DtlsParameters...
Source:https://docs.google.com/presentation/d/1oDVgPQtYpQNRkgiP51OQJS1sOW6mjWcGvp129Bovd28
WhatyoucandowithWebRTC1.0objects
• "Warmup"mediapathwhilethegettingatrackandringing
• Changethesendcodec(withoutSDPmunging)• Changethecamerasourceinstantly(fronttoback)• Enable/disablesendingofmediainstantly(withoutsignalling)
• Setamaxbandwidth• ObtaindetailedstatusofindividualICEandDTLStransports
Source:https://docs.google.com/presentation/d/1oDVgPQtYpQNRkgiP51OQJS1sOW6mjWcGvp129Bovd28
40
🙂
1October2016
https://www.w3.org/TR/mediacapture-streams/
Readytogo!
41
Still not done…
1October2016
https://www.w3.org/TR/webrtc/
🙁
4242
43
WebRTC is crushing it!
13M 15M185M
405M500M+users
2B+devices
0
500
1000
1500
2000
2500
3000
IMS RCS VoLTE Skype WebRTC
MillionsofU
sers
VoIPTechnologyUsersafter5years
“Users” of various VoIP technologies roughly 5 years after their were introduced. Note “user” often means installs or supported devices.
44
The community is still growing..
0
50
100
150
200
250
300
350
Mar Jul Sep Nov Jan Mar May Jul Sep Nov Jan Mar May Jul Sep Nov Jan Mar May Jul Sep Nov Jan Mar May Jul Sep Nov Jan Mar May Jul
2011 2012 2013 2014 2015 2016
NewWebRTCcodecontributors/monthonGitHub
4545
46
47
Be adaptive
YourJavaScriptcode
adapter.js
Adapter.js helps your code interoperate with various browser implementation differences and standard changes. Use it!
48
Be early
InsiderPreview(slow)
InsiderPreview(fast)
Browser vendors have many pre-release channels to help you test your code before an auto-update breaks something.
49
Be continuous
ContinuousIntegration/Deployment
No one has time for formal a full stop-QA process anymore. Get over it and leverage modern approaches of continuous integration and deployment to ensure quality.
BeintegratedTelcoNetworks
Client Vendor1
Telco1
Telco2
ClientVendor2
EnterpriseNetworks WebComms Networks
Handset1
Telco
UCvendorPBX
SBC
app web
Webco
Webco
Webco
app web
app web
©2016ChadWallaceHartConsulting
The WebRTC provider needs to also provide the user interface and experience. There is no phone/client vendor to deal with these aspects – it is your problem but also an opportunity for you to really learn what matters to your end users and differentiate your offering.
51
Be at the front-end
WebRTC is just as much or more about the front-end than it is the back-end. Become an expert in web development and don’t forget about front-end technologies.
52
Be mobile
Image source: https://www.mobilesmith.com/html5-vs-native-debate-is-over/
Native mobile app development is one of the hardest aspects of WebRTC. Fortunately there are more options than ever for mobile app development.
53
Be part of the community
.org
++waymorethanyoucanstickonaslide…
AboutMe
1October2016 ChadWallaceHart 54
HeadofStrategicProductshttps://[email protected]
AblogforWebRTCdevelopershttps://webrtcHacks.com@webrtcHacks
WebRTCevents&videoshttps://www.krankygeek.com/@webrtclive