Successfully reported this slideshow.
Your SlideShare is downloading. ×

IIT 2020 - Sean DuBois Pion

Loading in …3

Check these out next

1 of 38 Ad

More Related Content

Similar to IIT 2020 - Sean DuBois Pion (20)

Recently uploaded (20)


IIT 2020 - Sean DuBois Pion

  1. 1. P I O N
  2. 2. Thank You Aaron France Adam Kiss Aleksandr Razumov Alex Browne Alex Harford AlexWoo(武杰) Antoine Baché Ato Araki Atsushi Watanabe Brendan Rius Cecylia Bocovich Chao Yuan Chris Hiszpanski Christopher Fry CloudWebRTC Daniele Sluijters Denis Gareth Hayes Guilherme Hongchao Ma Hugo Arregui Igor German Ingmar Wittkau Jadon Bennett Jake B Jason Maldonis John Bradley Justin Okamoto Konstantin Itskov Lander Noterman Lukas Herman Lukas Rezek Luke Curley Marouane Max Hawkins Michael MacDonald Michiel De Backker Mike Coleman Mészáros Mihály Oleg Kovalov Rafael Viscarra Raphael Derosso Pereira Raphael Randschau Robert Eperjesi RunningMan Ryan Gordon Sean DuBois Sebastian Waisbrot Slugalisk Stefan Tatschner Steve Suhas Gaddam Tobias Fridén Vicken Simonian Will Watson Woodrow Douglass Yutaka Takeda Zizheng Tai adwpc chenkaiC4 earle feixiao frank igolaizola imalic3 jinleileiking jose nazario mchlrhw mxmCherry notedit rob-deutsch ronan simonacca-fotokite songjiayang spaceCh1mp sylba2050 wattanakorn495 xsbchen zigazeljko Clayton McCray Hendrik Hofstadt Luke S Bao Nguyen Konstantin Chugalinskiy Nick Mykins Jerko Steiner Roman Romaneko Ivan Egorov John Berthels Juliusz Chroboczek Josh Bleecher Snyder Salmān Aljammāz cnderrauber Simon Eisenmann Simone Gotti Cedric Fung Chad Retz Magnus Wahlstrand a-wing Egon Elbre Yuki Igarashi Tarrence van As Masahiro Nakamura nindolabs Quentin Renard akil Jorropo Lawl Jeffrey Stoke Jeroen de Bruijn folbrich bjdgyc Julien Salleyron Jozef Kralik Hayden James Sam Lancia Ori Berstein David Hamilton Nevio Vesic Jason Brady Leeward Bound Kgothatso Ngako
  3. 3. 1 What is this talk Beyond standard use cases - Cloud Gaming - Teleoperation - Censorship Circumvention - Protocol Bridging We need more… - Community - Education - Software with no assumptions
  5. 5. 2 Motivations Developers are smart, they need to be empowered * knobs for learning and tuning Developers find happiness from owning their projects * I want to promote others, not under Pion umbrella The more users the better. Even if they aren’t open source Developers want to be involved in Open Source. * Companies/maintainers don’t want to share
  6. 6. 3 WebRTC for the Curious Book on how WebRTC really works - Not just about the public APIs! - Deep dive on protocols History of WebRTC - Interviews with RFC authors WebRTC in practice - Debugging every piece - Teach the sharp edges
  7. 7. 4 Pion Collection of Go RTC libraries - Building blocks to build your vision - Designed to be flexible PeerConnection API in Pure Go - CreateOffer/AddTrack/…. - User controls media pipeline - SettingEngine - Interceptors
  8. 8. 5 Pion TURN as an API in Pure Go - Callbacks for authentication - Bring your own logger - Run TURN and HTTPS on same port - Embed TURN in application Ion - Cluster based system for building RTC - SFU Instance - AVP Instance (Processing real-time media) - LIVE Instance (SIP/RTMP/HLS Endpoints)
  10. 10. 6 For all skill levels PeerConnection API you already know Language that gets out of your way - Memory Safe - Easy to code and deploy “typically, fairly young, fresh out of school ….. the language that we give them has to be easy for them to understand and easy to adopt.” - Rob Pike
  11. 11. 7 For all skill levels Get the support you need - WebRTC for the Curious - Pion Slack DevOps friendly - Go is easy to hire for Knobs when you become the expert - SettingEngine/Interceptors - You can replace any module (ICE)
  12. 12. 8 Portable/Flexible Servers - Windows/Linux/FreeBSD - x86/x64/ARM - Static Binary (Don’t need Go on server) Mobile - Android/iOS - Generate shared object + header file Small(ish) Platforms - 3Mb - TinyGo someday? Arduino, Gameboy Advance!? Web (WASM)
  13. 13. 9 Features STUN/TURN DataChannels Simulcast Congestion Control (v3 Interceptor) FEC/NACK (v3 Interceptor) getStats API
  14. 14. 10 Performance
  15. 15. 11 Pion Specific APIs SettingEngine - ICE-Lite - Answering DTLS Role - Set UDP Port Range - Interface Filtering - Static Public IP - Enable/Disable mDNS Candidates - ICE Candidate Selection Rules
  16. 16. 12 Pion Specific APIs Interceptors - Process Inbound/Outbound RTP FEC Congestion Control - Choose between REMB/TWCC - Tweak REMB Algorithm JitterBuffer - You choose the latency/loss tradeoffs
  17. 17. WHAT CAN I BUILD
  18. 18. 13 SFU Simple as AddTrack/OnTrack - Copy buffers between PeerConnections PeerConnection for each Client - Unified Plan and Re-Negotiation You decide your Congestion Control - Are you working with embedded? - Do clients support Simulcast?
  19. 19. 14 MCU Calling C from Go is painless People use ffmpeg, GStreamer or libvpx directly
  20. 20. 15 Cloud Gaming
  21. 21. 16 WebRTC Load Tester
  22. 22. 17 Teleoperation DataChannels more powerful the you expect - Don’t finish a damaged datagram - Backpressure info is valuable Corporate networks are no fun… - TCP (or TLS) Only - Proxy required - UDP Port Ranges Whitelisted
  23. 23. 18 Protocol Bridge
  24. 24. PION IN ACTION
  25. 25. ns-remote 19
  26. 26. 20
  27. 27. 21 Neko
  28. 28. 22 TelloGo
  29. 29. 23 ascii
  30. 30. Strive CDN 24
  31. 31. 25 Protocol Bridge
  32. 32. 26 ssh-p2p
  33. 33. 27 RTCTunnel
  34. 34. 28 Snowflake
  35. 35. 29
  36. 36. 30 Ion
  37. 37. 31 Pion needs you Empower those helping the internet! Gain deep WebRTC knowledge A fun challenge where you pick the goals
  38. 38. 32