40
P I O N W E B R T C

P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

P I O NW E B R T C

Page 2: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

Contributors18871002288

3Byuan

Aaron France

Adam Kiss

Aleksandr

Aleksandr Arofikin

Aleksandr Razumov

Alex Browne

Alex Harford

AlexWoo(武杰)

Alexey Kravtsov

Andrei Nistor

Andrew N. Shalaev

Anindya Chatterjee

Antoine Baché

Artur Shellunts

Assad Obaid

Ato Araki

Atsushi Watanabe

BN

Bao Nguyen

Ben Weitzman

Billy Lindeman

Bjørn Remseth

Bo Shi

Brendan Rius

Cameron Elliott

Carson Hoffman

Cecylia Bocovich

Cedric Fung

Cédric Verstraeten

Chad Retz

Chao Yuan

Chris Hiszpanski

Christian Muehlhaeuser

Christopher Fry

Clayton McCray

CloudWebRTC

Cory Schwartz

Daniele Sluijters

David Hamilton

David-dp-

Dean Eigenmann

Denis

Doug Cone

Egon Elbre

Emir Aganovic

EricSong

Gabor Pongracz

Gareth Hayes

Graham King

Greg Burd

Guilherme

Haiyang Wang

Hanjun Kim

Harrison

Hayden James

Hendrik Hofstadt

Henry

Herman Banken

Hongchao Ma

Hugo Arregui

Igor German

Ilya Mayorov

Ingmar Wittkau

Issac Trotts

Ivan Egorov

Ivelin Ivanov

JacobZwang

Jadon Bennett

Jake B

Jake Coffman

Jamie Good

Jannis Mattheis

Jason

Jason Brady

Jason Maldonis

Jeff Tchang

Jeffrey Barron

Jeffrey Stoke

Jerko Steiner

Jeroen de Bruijn

Jim Wert

Jin Gong

John Berthels

John Bradley

John R. Bradley

Jon Lundy

Jonathan Jackson

JooYoung

Jorropo

Josh Bleecher Snyder

Joshua Obasaju

Jozef Kralik

Julien Salleyron

Juliusz Chroboczek

Justin Okamoto

Kazuyuki Honda

Kevin Wang

Kgothatso Ngako

Konstantin Chugalinskiy

Konstantin Itskov

Kuzmin Vladimir

Lander Noterman

Leeward Bound

Levin Du

Lukas Herman

Page 3: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

WHAT IS WEBRTC?

Page 4: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

1

Protocol for BrowsersE2E Secure Connection between Peers

Multiple Audio/Video Tracks

Binary Data - Can be lossy - Can be unordered - Multiple distinct DataChannels

Page 5: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

2

And More! - aiortc (Python) - GStreamer’s webrtcbin (C) - werift (Typescript) - Pion (Golang) - Shiguredo (Erlang) - |pipe| (Java) - rawrtc (C++) - webrtc-rs (Rust) - AWS WebRTC (C/Embedded) - ?

Page 6: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

3

WebRTC for the CuriousBook 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

Page 7: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

WHAT DOES IT SOLVE

Page 8: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

Problem: Connect two users with no Public IP

4

Page 9: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

Solution: NAT Traversal

5

Page 10: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

Solution: NAT Traversal

6

Page 11: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

Problem: Stay connected on the move

7

Page 12: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

Solution: ICE Restart

8

Page 13: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

Problem: What bitrate do I upload?

9

Page 14: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

Problem: What bitrate do I upload?

10

Page 15: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

Solution: Congestion Control

11

Page 16: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

Problem: Don’t block on the past

1312

Page 17: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

Solution: SCTP

1313

Page 18: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

TIME TO BUILD

Page 19: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

14

Connecting (Signaling Offer/Answer)

Page 20: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

15

Sending Data (DataChannels)

Page 21: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

16

Receiving Data (DataChannels)

Page 22: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

17

Deploy to the browser!

Page 23: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

18

Send Video

Page 24: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

19

Receive Video

Page 25: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

PION IN ACTION

Page 26: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

ns-remote 20

Page 27: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

kerberos.io 21

Page 28: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

CloudRetro.io

22

Page 29: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

23

Neko github.com/nurdism/neko

Page 30: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

24

TelloGo

Page 31: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

25

ascii

Page 32: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

26

cloud-morph

Page 33: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

27

ssh-p2p

Page 34: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

28

Snowflake

Page 35: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

webwormhole.io 29

Page 36: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

s4y/space30

Page 37: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

Project Lightspeed

31

Page 38: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

32

Even more projects

GitHub.com/pion/awesome-pion

We want to share your projects!

Page 39: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

33

Pion needs youEmpower those helping the internet!

Gain deep WebRTC knowledge

A fun challenge where you pick the goals

Page 40: P I O N - fosdem.org...Ilya Mayorov Ingmar Wittkau Issac Trotts Ivan Egorov Ivelin Ivanov JacobZwang Jadon Bennett Jake B Jake Coffman Jamie Good Jannis Mattheis Jason Jason Brady

34

github.com/pion

pion.ly/slack

twitter.com/_pion