Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

WebRTC overview

3.252 visualizaciones

Publicado el

WebRTC Overview

Publicado en: Software
  • Sé el primero en comentar

WebRTC overview

  1. 1. WebRTC Overview RouYun Pan 1
  2. 2. •What is 2
  3. 3. WebRTC is …? • WebRTC offers users the ability to conduct a real-time peer-to-peer communication for vioice, video and data. • Today, WebRTC is still a work in progress. 3
  4. 4. History - Feb, 2010 Google acquire ON2 Technologies for $124 million, and then release the video engine(VP8). 4 - May 2010 Google acquire Global IP Solutions(GIPS) for $68 million, and then release the source code about audio engine and network. - Oct 2011 First Public Working Draft - W3C - Feb 2012 WebRTC Native APIs 2.0 - June 2012 WebRTC Session at Google I/O - Feb 2013 Firefox and Chrome interoperation achieved
  5. 5. What does Webrtc provide? • Open Source, no royalties, license fees • Real-time flexible voice, video & data framework in cross platform • Standard Web APIs Interoperable between browsers • No proprietary plug-in • Security 5
  6. 6. Low entry barriers 6 P2P VoIP WebRTC PSTN Entry barrier: complexity Time VoIP  Circuit-switched  Electric gear  Dedicated lines  SIP, IP-based  Somewhat interoperable  IMS core (for carriers)  Complex systems  Pure IP  Peer-to-peer (P2P)  Need client software  „Walled garden“  HTML5  No plugin needed  No client software  Fully interoperable
  7. 7. Standardization 7 IETF *RTCWEB WG formed after BOF at IETF 80, April 2011 *Focus on protocols and interoperability. W3C *W3C WEBRTC WG created May 2011 *High level APIs and device control (mic, camera, network) *PeerConnection API proposal originally proposed in WHATWG currently being discussed: http://dev.w3.org/2011/webrtc/editor/webrtc.html
  8. 8. WebRTC supported on >4bn devices by 2016 8
  9. 9. What’s inside WebRTC 9
  10. 10. For developer • It is built into browsers and Using SDKs and APIs of WebRTC can be integrated into Android and iOS apps – Session management – Codec handling – Peer to peer communication – Security – Bandwidth estimation – Signaling and backend are not part of WebRTC 10
  11. 11. Peer to peer, Server still be required? 11 Client A Client B
  12. 12. Webrtc need these severs • Signaling Server • ICE Servers • Media Servers (optional) 12
  13. 13. Signaling plane • Signaling is the process of coordinating communication. In order for a “WebRTC Call”, its clients may need to exchange information: – Session control messages used to open or close communication. – Error messages. – Media metadata such as codec settings, bandwidth and media types. – Key data, used to establish secure connections. – Network data, such as a host's IP address and port as seen by the outside world. 13
  14. 14. • SIP/SDP • XMPP/Jingle • Websockets • XHR/Comet Signaling option in WebRTC 14
  15. 15. For Example: SDP(conti.) Session Origin Information Network Information Audio Information ICE Candidate for audio 15
  16. 16. For Example: SDP(conti.) • http://tools.ietf.org/id/draft-nandakumar-rtcweb-sdp-01.html#rfc.section.5 Indicates NACK RTCP feedback support Video information ICE Candidate for video RTCP setting data channel information ICE Candidate for data 16
  17. 17. WebRTC Signaling triangle PeerConnection(audio, video and/or data) Web/Signaling server Client A Client B Signaling Signaling 17
  18. 18. Webrtc Signaling trapezoid Peerconnection(audio,and video and/or data) Server A Client A Client B Server B Jingle or Sip Signaling 18 Signaling
  19. 19. WebRTC & SIP PeerConnection(audio and/or video) Server A Client A SIP Phone SIP Server sip sip Signaling 19
  20. 20. WebRTC & Jingle PeerConnection(audio and/or video) Server A Client A Jingle client XMPP Server Jingle jingle Signaling 20
  21. 21. WebRTC & PSTN PeerConnection(audio) Server Client A Phone BGateway Signaling sip analog 21
  22. 22. WebRTC protocol 22
  23. 23. RFC Documents • ICE: Interactive Connectivity Establishment (RFC 5245) – STUN: Session Traversal Utilities for NAT (RFC 5389) – TURN: Traversal Using Relays around NAT (RFC 5766) • SDP: Session Description Protocol (RFC 4566) • XMPP: Extensible Messaging and Presence Protocol (RFC 3921) • DTLS: Datagram Transport Layer Security (RFC 6347) • SCTP: Stream Control Transport Protocol (RFC 4960) • SRTP: Secure Real-Time Transport Protocol (RFC 3711) 23
  24. 24. For example: Secure pathways Data(SCTP) Web/Signaling server Client A Client B Audio/video(SRTP) Signaling(https) Signaling(https) 24
  25. 25. NAT traversal Client A NAT NAT Signaling Signaling 25
  26. 26. Interactive Connectivity Establishment (ICE) • A framework for connecting peers, it tries to find the best path for each call. – Direct – STUN (Session Traversal Utilities for NAT) – TURN (Traversal Using Relays around NAT) 26
  27. 27. STUN Server Client A NAT NAT Signaling Signaling Stun server Media 27
  28. 28. TURN Server Client A NAT NAT Signaling Signaling Stun server Media Turn server Media 28
  29. 29. Media engine 29
  30. 30. VoiceEngine • OPUS (RFC6716) • G.711(RFC3551) • NetEQ for Voice • Acoustic Echo Canceler • Noise Reduction * 8 kHz to 48 kHz * Bitrate is about 6- 510 Kbps 30
  31. 31. VideoEngine • VP8(RFC6386) • Video Jitter Buffer & Packet Loss • Image enhancements *1080P at 30 FPS: 2.5+ Mbps *720p at 30 FPS: 1.0~2.0 Mbps *360p at 30 FPS: 0.5~1.0 Mbps *180p at 30 FPS: 0.1~0.5 Mbps 31
  32. 32. Set up a call Applicaption PeerConnectionfactory PeerConnectionfactory() CreatLocolMediaStream() CreatLocolVideoTrack() CreatLocolAudioTrack() (add the tracks to stream) AddSream() PeerConnection CommitStreamChanges() OnSingalingMessage() - Offer Get Answer from the remote peer Remote Peer Send Offer to the remote peer Media OnAddSream() 32
  33. 33. Receive a call Applicaption PeerConnectionfactory CreatLocolMediaStream() CreatLocolVideoTrack() CreatLocolAudioTrack() (add the tracks to stream) AddSream() PeerConnection CommitStreamChanges() Send Answer to the remote peer Remote Peer Reciever Offer from the remote peer ProcessingSingalingMessage() - Offer Media OnSinglingMessages() - answer PeerConnectionfactory() OnAddStream() 33
  34. 34. Close a call Applicaption Close PeerConnection OnStateChanges() Get OK from the remote peer Remote Peer Send Shutdown to the remote peer RemoveStream() OnSignalingMessgae() - Shutdown ProcessingMessage() - OK OnStateChanges() 34
  35. 35. Comparison with VoIP Classic VoIP WebRTC Signaling SIP or H.323 Undefined Media transport RTP/RTCP RTP/RTCP Security SRTP in SIP H.235 in H.323 SRTP NAT traversal STUN/TURN/ICE in SIP H.450.x in H.323 STUN/TURN/ICE Video codec H.263, H.264 VP8 Voice codec G.7xx series G.711, Opus, iLAB, iSAC 35
  36. 36. What can we do with WebRTC? 36
  37. 37. Technical support 37
  38. 38. Home health care 38
  39. 39. Game streaming 39
  40. 40. Spy Camera? Wearable device 40
  41. 41. Q&A 41

×