Page 1
WebRTCAmitesh MadCisco Systems
Wikipedia : WebRTC (Web Real-Time Communication) is an API definition being drafted by the World Wide Web Consortium (W3C) to enable browser-to-browser applications for voice calling, video chat, and P2P file sharing without plugins
Page 2
Contributions
Cullen Jennings (aka: fluffy)Cisco Fellow
Justin Uberti Google WebRTC Tech Lead
Page 3
About WebRTC
1. Collects audio, video inputs2. Screen share 3. Peer connection 4. Send random-data
Page 4
Its peer to peer
ServerX
Page 5
Demos
1. Collects audio, video inputs1. http://webcamtoy.com/app/2. http://idevelop.ro/ascii-camera/ 3. record-user-webm.html
Page 6
Its peer to peer
Host Callee
Page 7
Its peer to peer
Server over HTTP/WebSockets
Host Callee
Page 8
Its peer to peer
Server over HTTP/WebSockets
Signaling
Signaling
Host Callee
Page 9
Its peer to peer
Server over HTTP/WebSockets
Signaling
Signaling
Host CalleeOffer
Page 10
Its peer to peer
Server over HTTP/WebSockets
Signaling
Signaling
Host CalleeOffer
Answer
Page 11
Its peer to peer
Server over HTTP/WebSockets
Signaling
Signaling
Host Callee
XX
Page 12
Advantages
Browser connected to other browser.
No Server, less latency.
Sends data without 3 way handshake.
Provide both reliable and unreliable sharing.
Secure, encrypted, offer-answer model.
Page 14
1. v=02. o=- 4104655485640177113 2 IN IP4 127.0.0.13. s=-4. t=0 05. a=group:BUNDLE audio video6. a=msid-semantic: WMS rOmWIpzWvuXFX1SHtiHiukEx9AYzhdfJE5T97. m=audio 54483 RTP/SAVPF 111 103 104 0 8 106 105 13 1268. c=IN IP4 10.100.48.409. a=rtcp:54483 IN IP4 10.100.48.4010. a=candidate:2921619256 1 udp 2113937151 10.100.48.40 62895 typ host generation 011. a=candidate:2921619256 2 udp 2113937151 10.100.48.40 62895 typ host generation 012. a=candidate:3769082824 1 tcp 1509957375 10.100.48.40 0 typ host generation 013. a=candidate:3769082824 2 tcp 1509957375 10.100.48.40 0 typ host generation 014. a=candidate:1074717678 1 udp 33562367 10.100.48.40 54483 typ relay raddr 10.100.48.40 rport 62896 generation 015. a=candidate:1074717678 2 udp 33562367 10.100.48.40 54483 typ relay raddr 10.100.48.40 rport 62896 generation 016. a=ice-ufrag:3pGWjLQzkWqNoVpS17. a=ice-pwd:ZP46JnvinrZzz7dzfTbi69b618. a=ice-options:google-ice19. a=fingerprint:sha-256 A7:72:51:07:33:73:37:85:FC:97:36:1C:03:3A:80:92:44:F3:67:74:6E:3F:BF:E4:37:68:A2:5A:55:92:11:F920. a=setup:actpass21. a=mid:audio22. a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level23. a=sendrecv24. a=rtcp-mux25. a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:Qwz9z19RwYxYwXQpgA9IZqVlA5HFJBffzuhmzVm226. a=rtpmap:111 opus/48000/227. a=fmtp:111 minptime=1028. a=rtpmap:103 ISAC/1600029. a=rtpmap:104 ISAC/3200030. a=rtpmap:0 PCMU/800031. a=rtpmap:8 PCMA/800032. a=rtpmap:106 CN/3200033. a=rtpmap:105 CN/1600034. a=rtpmap:13 CN/800035. a=rtpmap:126 telephone-event/800036. a=maxptime:6037. a=ssrc:3826769839 cname:WWohplTFKzmkwgSo38. a=ssrc:3826769839 msid:rOmWIpzWvuXFX1SHtiHiukEx9AYzhdfJE5T9 rOmWIpzWvuXFX1SHtiHiukEx9AYzhdfJE5T9a039. a=ssrc:3826769839 mslabel:rOmWIpzWvuXFX1SHtiHiukEx9AYzhdfJE5T940. a=ssrc:3826769839 label:rOmWIpzWvuXFX1SHtiHiukEx9AYzhdfJE5T9a041. m=video 54483 RTP/SAVPF 100 116 11742. c=IN IP4 10.100.48.4043. a=rtcp:54483 IN IP4 10.100.48.4044. a=candidate:2921619256 1 udp 2113937151 10.100.48.40 62895 typ host generation 045. a=candidate:2921619256 2 udp 2113937151 10.100.48.40 62895 typ host generation 046. a=candidate:3769082824 1 tcp 1509957375 10.100.48.40 0 typ host generation 047. a=candidate:3769082824 2 tcp 1509957375 10.100.48.40 0 typ host generation 048. a=candidate:1074717678 1 udp 33562367 10.100.48.40 54483 typ relay raddr 10.100.48.40 rport 62896 generation 049. a=candidate:1074717678 2 udp 33562367 10.100.48.40 54483 typ relay raddr 10.100.48.40 rport 62896 generation 050. a=ice-ufrag:3pGWjLQzkWqNoVpS51. a=ice-pwd:ZP46JnvinrZzz7dzfTbi69b652. a=ice-options:google-ice53. a=fingerprint:sha-256 A7:72:51:07:33:73:37:85:FC:97:36:1C:03:3A:80:92:44:F3:67:74:6E:3F:BF:E4:37:68:A2:5A:55:92:11:F954. a=setup:actpass55. a=mid:video56. a=extmap:2 urn:ietf:params:rtp-hdrext:toffset57. a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time58. a=sendrecv59. a=rtcp-mux60. a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:Qwz9z19RwYxYwXQpgA9IZqVlA5HFJBffzuhmzVm261. a=rtpmap:100 VP8/9000062. a=rtcp-fb:100 ccm fir63. a=rtcp-fb:100 nack64. a=rtcp-fb:100 goog-remb65. a=rtpmap:116 red/9000066. a=rtpmap:117 ulpfec/9000067. a=ssrc:2630650822 cname:WWohplTFKzmkwgSo68. a=ssrc:2630650822 msid:rOmWIpzWvuXFX1SHtiHiukEx9AYzhdfJE5T9 rOmWIpzWvuXFX1SHtiHiukEx9AYzhdfJE5T9v069. a=ssrc:2630650822 mslabel:rOmWIpzWvuXFX1SHtiHiukEx9AYzhdfJE5T9
SIP/SDP
Page 15
Image Source: https://hacks.mozilla.org/2013/07/webrtc-and-the-ocean-of-acronyms/
Page 16
Peer to peer and plugin free
Page 21
Faster file sharing.
Page 22
Reduce load on CDN
Page 24
>= 21 >= 20 >= 12
Page 25
Microsoft kept low profile while others were already implementing
Page 26
Customizable, Ubiquitous Real Time Communication over the Web (aka CU-RTC-
Web)
Page 27
Microsoft’s take: More flexibilities, no single codec
Page 28
Google and Mozilla want to use VP8(Google 2010), default video codec. Microsoft has been
sceptical about VP8.
Page 29
Microsoft announced its support for H.264 and HTML5 web video at its Mix10 developers conference in Las Vegas in
March.
Page 30
Cisco Making a Bid to Solve WebRTC Video Codec Battle
Mozilla will add H.264 to Firefox as Cisco makes eleventh-hour push for WebRTC’s future
Page 31
Microsoft unhappy with SDP
Page 32
A vote carried out in September to choose between the two paths was heavily in favor of WebRTC. It
won with 22 votes to just 4 for Microsoft's proposal.
Page 34
WebRTC4all… Plugin free???
Page 35
Thank youTwitter: @amiteshawa