Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Astricon WebRTC Update

354 views

Published on

An update on WebRTC for Astricon 2016 including some history, WebRTC's massive traction recently, Apple, Microsoft, codecs, standards, and tips for working with WebRTC

Published in: Internet
  • Be the first to comment

Astricon WebRTC Update

  1. 1. WebRTC Astricon 2016
  2. 2. About Me 1 October 2016 Chad Wallace Hart 2 Head of Strategic Products https://www.voxbone.com cwhart@voxbone.com A blog for WebRTC developers https://webrtcHacks.com @webrtcHacks WebRTC events & videos https://www.krankygeek.com/ @webrtclive @chadwallacehart chad@chadwallacehart.com
  3. 3. 3 A recap of the past 5 years…
  4. 4. 4 World Class VoIP Engine for Free media engine video codec audio codec
  5. 5. 5 Internet & Web Standard
  6. 6. 6 3(ish) Web-friendly(+native) API’s Peer-to-peer RTC connectivity peerConnection Stream Capture getUserMedia Arbitrary p2p data transmission dataChannel Camera, Microphone, Screen
  7. 7. 7 State of the art technology Media negotiation Firewall/NAT Traversal Audio codecs Video codecs Flow controls Encryption
  8. 8. 8 Massive community .org Too many projects to put on a slide
  9. 9. 9 This is awesome!
  10. 10. 10 Who uses WebRTC? WebRTC details: https://webrtchacks.com/facebook-webrtc/Image source: http://www.nerddict.com/2016/06/download-facebook-messenger-for-windows.html 300 million monthly active users Less than 3 years since launch
  11. 11. 11 Who uses WebRTC?
  12. 12. 12 Who uses WebRTC?
  13. 13. 13 Who uses WebRTC?
  14. 14. 14 Who uses WebRTC? Old school telephony people
  15. 15. 15 Who uses WebRTC? New school telephony people
  16. 16. 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/I0GqzwfKJfQ https://docs.google.com/presentation/d/1JwnW6v3OM0RfoDYrPPTJrDNeIpidgh7hF _k5E1j2oKM/edit?usp=sharing
  17. 17. 1717 Image source: http://www.digitaldealer.com/how-to-handle-recalls-and-other-bad-news/
  18. 18. 18 WebRTC is not available everywhere
  19. 19. 19 3 ways Apple hurts WebRTC Safari Other Browser Apps on iOS WebView for iOS No support for desktop or mobile 70% of usage on iOS No support for easy native apps 20% of time share vs. Browser, Android, Desktop No one else is allowed to make a WebRTC Browser 30% of browser share on iOS ❌ ❌ ❌
  20. 20. 20 Apple Challenge: who do you care about? © 2016 Chad Wallace Hart Consulting WebRTC Support Within OS Share All Browser Share* All Time Share* Desktop browser Safari on OSX x ~50% ~2% ~1% Chrome/Firefox on OSX ~50% ~2% ~1% iOS Browser Safari on iOS ~70% ~20% ~2% Chrome/Firefox on iOS ~30% ~10% ~1% Mobile iOS app Webview on iOS - - ~20% Bring your own RTC on iOS x Share figures are rough estimates from Chad Wallace Hart consulting and statcounter.com* Desktop & mobile
  21. 21. 21 How Facebook handles browsers without WebRTC
  22. 22. 22 Not completely lost on the Safari…
  23. 23. 23
  24. 24. 24 Edge is making steady progress https://developer.microsoft.com/en-us/microsoft-edge/platform/status/screencapture/?q=category%3Arealtimecommunication
  25. 25. 25 Edge is growing, but still tiny http://gs.statcounter.com/#desktop-browser-ww-monthly-201606-201606-bar
  26. 26. 26 IE will continue to have more share for some time http://gs.statcounter.com/#desktop-browser-ww-monthly-201606-201606-bar
  27. 27. 27 No IE, but lots of Microsoft Old Browser New Browser Comms App Native App ❌ ✔ ✔ ✔ >500M users >100M users >300M MAU >350M Win 10 users + 8.1 install base No support planned ORTC + WebRTC support Skype for Web moving to WebRTC Adding Visual Studio tooling that includes WebRTC WebRTC at Microsoft
  28. 28. 28
  29. 29. 29 Learning WebRTC can be hard
  30. 30. 30 WebRTC requires you learn (or pay) Web Technology Popular Open Source Framework Web CMS WordPress, Joomla, Drupal… Front-End Development jQuery, Ember.js, Angular.js, React.. Front-end Design Bootstrap, Material Design, … WebGL Babylon, three.js, … WebSockets Socket.io WebRTC
  31. 31. 31 Signaling STUN/TURN Media server Photo by Flickr user Alex (CC BY-2.0) https://flic.kr/p/9v7Kgx
  32. 32. 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. 33. 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.
  34. 34. 34Chad Wallace Hart 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.
  35. 35. Everyone does H.264/AVC now.. mostly 1 October 2016 Chad Wallace Hart 35 https://groups.google.com/forum/#!topic/discuss-webrtc/bDfxOA8XiJI https://blogs.windows.com/msedgedev/2016/05/27/previewing-h-264avc-for-ortc/
  36. 36. 36 About standards… 1 October 2016
  37. 37. 37 NV Standards converge The next version of WebRTC incorporates what’s new in ORTC while maintaining backward compatibility with today’s WebRTC
  38. 38. Many ORTC objects are already in WebRTC 1.0 PeerConnection .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
  39. 39. What you can do with WebRTC 1.0 objects • "Warm up" media path while the getting a track and ringing • Change the send codec (without SDP munging) • Change the camera source instantly (front to back) • Enable/disable sending of media instantly (without signalling) • Set a max bandwidth • Obtain detailed status of individual ICE and DTLS transports Source: https://docs.google.com/presentation/d/1oDVgPQtYpQNRkgiP51OQJS1sOW6mjWcGvp129Bovd28
  40. 40. 40 🙂 1 October 2016 https://www.w3.org/TR/mediacapture-streams/ Ready to go!
  41. 41. 41 Still not done… 1 October 2016 https://www.w3.org/TR/webrtc/ 🙁
  42. 42. 4242
  43. 43. 43 WebRTC is crushing it! 13M 15M 185M 405M 500M+ users 2B+ devices 0 500 1000 1500 2000 2500 3000 IMS RCS VoLTE Skype WebRTC Millions of Users VoIP Technology Users after 5 years “Users” of various VoIP technologies roughly 5 years after their were introduced. Note “user” often means installs or supported devices.
  44. 44. 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 New WebRTC code contributors/month on GitHub
  45. 45. 4545
  46. 46. 46
  47. 47. 47 Be adaptive Your JavaScript code adapter.js Adapter.js helps your code interoperate with various browser implementation differences and standard changes. Use it!
  48. 48. 48 Be early Insider Preview (slow) Insider Preview (fast) Browser vendors have many pre-release channels to help you test your code before an auto-update breaks something.
  49. 49. 49 Be continuous Continuous Integration/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.
  50. 50. Be integrated Telco Networks Client Vendor 1 Telco 1 Telco 2 Client Vendor 2 Enterprise Networks Web Comms Networks Handset 1 Telco UC vendor PBX SBC app web Webco Webco Webco app web app web © 2016 Chad Wallace Hart Consulting 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. 51. 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. 52. 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. 53. 53 Be part of the community .org ++way more than you can stick on a slide…
  54. 54. About Me 1 October 2016 Chad Wallace Hart 54 Head of Strategic Products https://www.voxbone.com cwhart@voxbone.com A blog for WebRTC developers https://webrtcHacks.com @webrtcHacks WebRTC events & videos https://www.krankygeek.com/ @webrtclive @chadwallacehart chad@chadwallacehart.com

×