SlideShare a Scribd company logo
WebRTC Overview
RouYun Pan
1
•What is
2
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
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
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
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
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
WebRTC supported on >4bn devices by 2016
8
What’s inside WebRTC
9
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
Peer to peer, Server still be required?
11
Client A Client B
Webrtc need these severs
• Signaling Server
• ICE Servers
• Media Servers (optional)
12
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
• SIP/SDP
• XMPP/Jingle
• Websockets
• XHR/Comet
Signaling option in WebRTC
14
For Example: SDP(conti.)
Session Origin Information
Network Information
Audio Information
ICE Candidate for audio
15
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
WebRTC Signaling triangle
PeerConnection(audio, video and/or data)
Web/Signaling server
Client A Client B
Signaling Signaling
17
Webrtc Signaling trapezoid
Peerconnection(audio,and video and/or data)
Server A
Client A
Client B
Server B
Jingle or Sip
Signaling
18
Signaling
WebRTC & SIP
PeerConnection(audio and/or video)
Server A
Client A SIP Phone
SIP Server
sip
sip
Signaling
19
WebRTC & Jingle
PeerConnection(audio and/or video)
Server A
Client A
Jingle client
XMPP Server
Jingle
jingle
Signaling
20
WebRTC & PSTN
PeerConnection(audio)
Server
Client A Phone BGateway
Signaling sip
analog
21
WebRTC protocol
22
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
For example: Secure pathways
Data(SCTP)
Web/Signaling server
Client A Client B
Audio/video(SRTP)
Signaling(https) Signaling(https)
24
NAT traversal
Client A NAT NAT
Signaling Signaling
25
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
STUN Server
Client A NAT NAT
Signaling Signaling
Stun server
Media
27
TURN Server
Client A NAT NAT
Signaling Signaling
Stun server
Media
Turn server
Media
28
Media engine
29
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
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
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
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
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
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
What can we do with WebRTC?
36
Technical support
37
Home health care
38
Game streaming
39
Spy Camera? Wearable device
40
Q&A
41

More Related Content

What's hot

The constrained application protocol (CoAP)
The constrained application protocol (CoAP)The constrained application protocol (CoAP)
The constrained application protocol (CoAP)Hamdamboy (함담보이)
 
BGP on RouterOS7 -Part 1
BGP on RouterOS7 -Part 1BGP on RouterOS7 -Part 1
BGP on RouterOS7 -Part 1GLC Networks
 
20 - IDNOG03 - Franki Lim (ARISTA) - Overlay Networking with VXLAN
20 - IDNOG03 - Franki Lim (ARISTA) - Overlay Networking with VXLAN20 - IDNOG03 - Franki Lim (ARISTA) - Overlay Networking with VXLAN
20 - IDNOG03 - Franki Lim (ARISTA) - Overlay Networking with VXLANIndonesia Network Operators Group
 
Real-Time Text and WebRTC @ Kamailio World 2023
Real-Time Text and WebRTC @ Kamailio World 2023Real-Time Text and WebRTC @ Kamailio World 2023
Real-Time Text and WebRTC @ Kamailio World 2023Lorenzo Miniero
 
Introduction to HTTP protocol
Introduction to HTTP protocolIntroduction to HTTP protocol
Introduction to HTTP protocolAviran Mordo
 
HOTSPOT on MikroTik Router
HOTSPOT on MikroTik RouterHOTSPOT on MikroTik Router
HOTSPOT on MikroTik RouterKHNOG
 
XMPP and IoT - an overview
XMPP and IoT - an overviewXMPP and IoT - an overview
XMPP and IoT - an overviewPeter Waher
 
WebRTC: A front-end perspective
WebRTC: A front-end perspectiveWebRTC: A front-end perspective
WebRTC: A front-end perspectiveshwetank
 
MTCNA - MikroTik Certified Network Associate - v2
MTCNA - MikroTik Certified Network Associate - v2MTCNA - MikroTik Certified Network Associate - v2
MTCNA - MikroTik Certified Network Associate - v2Yaser Rahmati
 
Découvrez la technologie WebRTC, comment cela fonctionne?
Découvrez la technologie WebRTC, comment cela fonctionne? Découvrez la technologie WebRTC, comment cela fonctionne?
Découvrez la technologie WebRTC, comment cela fonctionne? Sylvain Boily
 
Kamailio :: A Quick Introduction
Kamailio :: A Quick IntroductionKamailio :: A Quick Introduction
Kamailio :: A Quick IntroductionOlle E Johansson
 
Overview of SCTP (Stream Control Transmission Protocol)
Overview of SCTP (Stream Control Transmission Protocol)Overview of SCTP (Stream Control Transmission Protocol)
Overview of SCTP (Stream Control Transmission Protocol)Peter R. Egli
 
Netmanias L2,L3 Training (1) L2 Ethernet
Netmanias L2,L3 Training (1) L2 EthernetNetmanias L2,L3 Training (1) L2 Ethernet
Netmanias L2,L3 Training (1) L2 EthernetChris Changmo Yoo
 
Inter-Process Communication in Microservices using gRPC
Inter-Process Communication in Microservices using gRPCInter-Process Communication in Microservices using gRPC
Inter-Process Communication in Microservices using gRPCShiju Varghese
 
Introduction into SIP protocol
Introduction into SIP protocolIntroduction into SIP protocol
Introduction into SIP protocolMichal Hrncirik
 
Introduction to WebSockets Presentation
Introduction to WebSockets PresentationIntroduction to WebSockets Presentation
Introduction to WebSockets PresentationJulien LaPointe
 
Introduction to WebSockets
Introduction to WebSocketsIntroduction to WebSockets
Introduction to WebSocketsGunnar Hillert
 

What's hot (20)

The constrained application protocol (CoAP)
The constrained application protocol (CoAP)The constrained application protocol (CoAP)
The constrained application protocol (CoAP)
 
BGP on RouterOS7 -Part 1
BGP on RouterOS7 -Part 1BGP on RouterOS7 -Part 1
BGP on RouterOS7 -Part 1
 
20 - IDNOG03 - Franki Lim (ARISTA) - Overlay Networking with VXLAN
20 - IDNOG03 - Franki Lim (ARISTA) - Overlay Networking with VXLAN20 - IDNOG03 - Franki Lim (ARISTA) - Overlay Networking with VXLAN
20 - IDNOG03 - Franki Lim (ARISTA) - Overlay Networking with VXLAN
 
WebRTC Seminar Report
WebRTC  Seminar ReportWebRTC  Seminar Report
WebRTC Seminar Report
 
Real-Time Text and WebRTC @ Kamailio World 2023
Real-Time Text and WebRTC @ Kamailio World 2023Real-Time Text and WebRTC @ Kamailio World 2023
Real-Time Text and WebRTC @ Kamailio World 2023
 
Introduction to HTTP protocol
Introduction to HTTP protocolIntroduction to HTTP protocol
Introduction to HTTP protocol
 
HOTSPOT on MikroTik Router
HOTSPOT on MikroTik RouterHOTSPOT on MikroTik Router
HOTSPOT on MikroTik Router
 
XMPP and IoT - an overview
XMPP and IoT - an overviewXMPP and IoT - an overview
XMPP and IoT - an overview
 
WebRTC: A front-end perspective
WebRTC: A front-end perspectiveWebRTC: A front-end perspective
WebRTC: A front-end perspective
 
MTCNA - MikroTik Certified Network Associate - v2
MTCNA - MikroTik Certified Network Associate - v2MTCNA - MikroTik Certified Network Associate - v2
MTCNA - MikroTik Certified Network Associate - v2
 
Découvrez la technologie WebRTC, comment cela fonctionne?
Découvrez la technologie WebRTC, comment cela fonctionne? Découvrez la technologie WebRTC, comment cela fonctionne?
Découvrez la technologie WebRTC, comment cela fonctionne?
 
Kamailio :: A Quick Introduction
Kamailio :: A Quick IntroductionKamailio :: A Quick Introduction
Kamailio :: A Quick Introduction
 
Port numbers
Port numbersPort numbers
Port numbers
 
Overview of SCTP (Stream Control Transmission Protocol)
Overview of SCTP (Stream Control Transmission Protocol)Overview of SCTP (Stream Control Transmission Protocol)
Overview of SCTP (Stream Control Transmission Protocol)
 
Netmanias L2,L3 Training (1) L2 Ethernet
Netmanias L2,L3 Training (1) L2 EthernetNetmanias L2,L3 Training (1) L2 Ethernet
Netmanias L2,L3 Training (1) L2 Ethernet
 
Inter-Process Communication in Microservices using gRPC
Inter-Process Communication in Microservices using gRPCInter-Process Communication in Microservices using gRPC
Inter-Process Communication in Microservices using gRPC
 
Introduction into SIP protocol
Introduction into SIP protocolIntroduction into SIP protocol
Introduction into SIP protocol
 
Introduction to WebSockets Presentation
Introduction to WebSockets PresentationIntroduction to WebSockets Presentation
Introduction to WebSockets Presentation
 
Introduction to WebSockets
Introduction to WebSocketsIntroduction to WebSockets
Introduction to WebSockets
 
SIP for geeks
SIP for geeksSIP for geeks
SIP for geeks
 

Viewers also liked

Comunicação em tempo real com WebRTC e PHP
Comunicação em tempo real com WebRTC e PHPComunicação em tempo real com WebRTC e PHP
Comunicação em tempo real com WebRTC e PHPMichael Douglas
 
WebRTC - On Standards, Identity and Telco Strategy
WebRTC - On Standards, Identity and Telco StrategyWebRTC - On Standards, Identity and Telco Strategy
WebRTC - On Standards, Identity and Telco StrategyJose de Castro
 
Implementation Lessons using WebRTC in Asterisk
Implementation Lessons using WebRTC in AsteriskImplementation Lessons using WebRTC in Asterisk
Implementation Lessons using WebRTC in AsteriskMoises Silva
 
Introducing Web 2.0 concepts
Introducing Web 2.0 conceptsIntroducing Web 2.0 concepts
Introducing Web 2.0 conceptsJohn Lewis
 

Viewers also liked (7)

Comunicação em tempo real com WebRTC e PHP
Comunicação em tempo real com WebRTC e PHPComunicação em tempo real com WebRTC e PHP
Comunicação em tempo real com WebRTC e PHP
 
WebRTC - On Standards, Identity and Telco Strategy
WebRTC - On Standards, Identity and Telco StrategyWebRTC - On Standards, Identity and Telco Strategy
WebRTC - On Standards, Identity and Telco Strategy
 
WebRTC
WebRTCWebRTC
WebRTC
 
Implementation Lessons using WebRTC in Asterisk
Implementation Lessons using WebRTC in AsteriskImplementation Lessons using WebRTC in Asterisk
Implementation Lessons using WebRTC in Asterisk
 
Introducing Web 2.0 concepts
Introducing Web 2.0 conceptsIntroducing Web 2.0 concepts
Introducing Web 2.0 concepts
 
20171005 webrtc
20171005 webrtc20171005 webrtc
20171005 webrtc
 
WebRTC Status Update - 2017Q2
WebRTC Status Update - 2017Q2WebRTC Status Update - 2017Q2
WebRTC Status Update - 2017Q2
 

Similar to WebRTC overview

WebRTC - Is it ready? 2013
WebRTC - Is it ready? 2013WebRTC - Is it ready? 2013
WebRTC - Is it ready? 2013Hank Huang
 
WebRTC Standards from Tim Panton
WebRTC Standards from Tim PantonWebRTC Standards from Tim Panton
WebRTC Standards from Tim PantonAlan Quayle
 
WebRTC. Yet Another Overview, for IT Technicians.
WebRTC. Yet Another Overview, for IT Technicians.WebRTC. Yet Another Overview, for IT Technicians.
WebRTC. Yet Another Overview, for IT Technicians.Vladimir Beloborodov
 
Building a WebRTC Communication and collaboration platform - techleash barcamp
Building a WebRTC Communication and collaboration platform  -  techleash barcampBuilding a WebRTC Communication and collaboration platform  -  techleash barcamp
Building a WebRTC Communication and collaboration platform - techleash barcampALTANAI BISHT
 
Getting Started with WebRTC
Getting Started with WebRTCGetting Started with WebRTC
Getting Started with WebRTCChad Hart
 
WebRTC standards update - November 2014
WebRTC standards update - November 2014WebRTC standards update - November 2014
WebRTC standards update - November 2014Victor Pascual Ávila
 
WebRTC Overview by Dan Burnett
WebRTC Overview by Dan BurnettWebRTC Overview by Dan Burnett
WebRTC Overview by Dan BurnettMojo Lingo
 
TADS Developer Summit WebRTC Dan Burnett
TADS Developer Summit WebRTC Dan BurnettTADS Developer Summit WebRTC Dan Burnett
TADS Developer Summit WebRTC Dan BurnettAlan Quayle
 
WebRTC Standards & Implementation Q&A - WebRTC NV planning face-to-face meeting
WebRTC Standards & Implementation Q&A - WebRTC NV planning face-to-face meetingWebRTC Standards & Implementation Q&A - WebRTC NV planning face-to-face meeting
WebRTC Standards & Implementation Q&A - WebRTC NV planning face-to-face meetingAmir Zmora
 
WebRTC Standards Update (October 2014)
WebRTC Standards Update (October 2014)WebRTC Standards Update (October 2014)
WebRTC Standards Update (October 2014)Victor Pascual Ávila
 
Designing an 4K/UHD1 HDR OB Truck as 12G-SDI or IP-based
Designing an 4K/UHD1 HDR OB Truck as 12G-SDI or IP-basedDesigning an 4K/UHD1 HDR OB Truck as 12G-SDI or IP-based
Designing an 4K/UHD1 HDR OB Truck as 12G-SDI or IP-basedDr. Mohieddin Moradi
 
PLNOG 13: Bart Salaets: Optimising TCP in today’s changing network environment
PLNOG 13: Bart Salaets: Optimising TCP in today’s changing network environmentPLNOG 13: Bart Salaets: Optimising TCP in today’s changing network environment
PLNOG 13: Bart Salaets: Optimising TCP in today’s changing network environmentPROIDEA
 
ENSA_Module_9-QoS Concept.pptx
ENSA_Module_9-QoS Concept.pptxENSA_Module_9-QoS Concept.pptx
ENSA_Module_9-QoS Concept.pptxZikoSuryaLesmana
 

Similar to WebRTC overview (20)

WebRTC - Is it ready? 2013
WebRTC - Is it ready? 2013WebRTC - Is it ready? 2013
WebRTC - Is it ready? 2013
 
WebRTC Standards from Tim Panton
WebRTC Standards from Tim PantonWebRTC Standards from Tim Panton
WebRTC Standards from Tim Panton
 
WebRTC. Yet Another Overview, for IT Technicians.
WebRTC. Yet Another Overview, for IT Technicians.WebRTC. Yet Another Overview, for IT Technicians.
WebRTC. Yet Another Overview, for IT Technicians.
 
Building a WebRTC Communication and collaboration platform - techleash barcamp
Building a WebRTC Communication and collaboration platform  -  techleash barcampBuilding a WebRTC Communication and collaboration platform  -  techleash barcamp
Building a WebRTC Communication and collaboration platform - techleash barcamp
 
Getting Started with WebRTC
Getting Started with WebRTCGetting Started with WebRTC
Getting Started with WebRTC
 
WebRTC standards update - November 2014
WebRTC standards update - November 2014WebRTC standards update - November 2014
WebRTC standards update - November 2014
 
DevCon 5 (December 2013) - WebRTC & WebSockets
DevCon 5 (December 2013) - WebRTC & WebSocketsDevCon 5 (December 2013) - WebRTC & WebSockets
DevCon 5 (December 2013) - WebRTC & WebSockets
 
DevCon 5 (July 2013) - WebSockets
DevCon 5 (July 2013) - WebSocketsDevCon 5 (July 2013) - WebSockets
DevCon 5 (July 2013) - WebSockets
 
WebRTC Overview by Dan Burnett
WebRTC Overview by Dan BurnettWebRTC Overview by Dan Burnett
WebRTC Overview by Dan Burnett
 
WebRTC eduCONF
WebRTC eduCONFWebRTC eduCONF
WebRTC eduCONF
 
TADS Developer Summit WebRTC Dan Burnett
TADS Developer Summit WebRTC Dan BurnettTADS Developer Summit WebRTC Dan Burnett
TADS Developer Summit WebRTC Dan Burnett
 
WebRTC Standards & Implementation Q&A - WebRTC NV planning face-to-face meeting
WebRTC Standards & Implementation Q&A - WebRTC NV planning face-to-face meetingWebRTC Standards & Implementation Q&A - WebRTC NV planning face-to-face meeting
WebRTC Standards & Implementation Q&A - WebRTC NV planning face-to-face meeting
 
WebRTC Standards Update (October 2014)
WebRTC Standards Update (October 2014)WebRTC Standards Update (October 2014)
WebRTC Standards Update (October 2014)
 
WebRTC
WebRTCWebRTC
WebRTC
 
WebRTC in action
WebRTC in actionWebRTC in action
WebRTC in action
 
Designing an 4K/UHD1 HDR OB Truck as 12G-SDI or IP-based
Designing an 4K/UHD1 HDR OB Truck as 12G-SDI or IP-basedDesigning an 4K/UHD1 HDR OB Truck as 12G-SDI or IP-based
Designing an 4K/UHD1 HDR OB Truck as 12G-SDI or IP-based
 
Streaming
StreamingStreaming
Streaming
 
PLNOG 13: Bart Salaets: Optimising TCP in today’s changing network environment
PLNOG 13: Bart Salaets: Optimising TCP in today’s changing network environmentPLNOG 13: Bart Salaets: Optimising TCP in today’s changing network environment
PLNOG 13: Bart Salaets: Optimising TCP in today’s changing network environment
 
Workshop oracle
Workshop oracleWorkshop oracle
Workshop oracle
 
ENSA_Module_9-QoS Concept.pptx
ENSA_Module_9-QoS Concept.pptxENSA_Module_9-QoS Concept.pptx
ENSA_Module_9-QoS Concept.pptx
 

More from Rouyun Pan

有點硬又不會太硬的DNN加速器
有點硬又不會太硬的DNN加速器有點硬又不會太硬的DNN加速器
有點硬又不會太硬的DNN加速器Rouyun Pan
 
深度學習工作流程
深度學習工作流程深度學習工作流程
深度學習工作流程Rouyun Pan
 
Tensorflow lite for microcontroller
Tensorflow lite for microcontrollerTensorflow lite for microcontroller
Tensorflow lite for microcontrollerRouyun Pan
 
Google edge tpu
Google edge tpuGoogle edge tpu
Google edge tpuRouyun Pan
 
用Adobe Camera raw 進行膚色校正
用Adobe Camera raw 進行膚色校正用Adobe Camera raw 進行膚色校正
用Adobe Camera raw 進行膚色校正Rouyun Pan
 
給攝影師的古典藝術構圖
給攝影師的古典藝術構圖給攝影師的古典藝術構圖
給攝影師的古典藝術構圖Rouyun Pan
 
照片直方圖解析
照片直方圖解析照片直方圖解析
照片直方圖解析Rouyun Pan
 
Deep Learning Hardware: Past, Present, & Future
Deep Learning Hardware: Past, Present, & FutureDeep Learning Hardware: Past, Present, & Future
Deep Learning Hardware: Past, Present, & FutureRouyun Pan
 
「轉貼」移動互聯網行業盤點
「轉貼」移動互聯網行業盤點「轉貼」移動互聯網行業盤點
「轉貼」移動互聯網行業盤點Rouyun Pan
 
The overview of VR solutions
The overview of VR solutionsThe overview of VR solutions
The overview of VR solutionsRouyun Pan
 
Render thead of hwui
Render thead of hwuiRender thead of hwui
Render thead of hwuiRouyun Pan
 
[轉貼] 社群大數據 - 輿情觀測及分析應用
[轉貼] 社群大數據 - 輿情觀測及分析應用[轉貼] 社群大數據 - 輿情觀測及分析應用
[轉貼] 社群大數據 - 輿情觀測及分析應用Rouyun Pan
 
Android 待機與操作耗電檢查
Android 待機與操作耗電檢查Android 待機與操作耗電檢查
Android 待機與操作耗電檢查Rouyun Pan
 
Analyzing Display and Performance with Systrace
Analyzing Display and Performance with SystraceAnalyzing Display and Performance with Systrace
Analyzing Display and Performance with SystraceRouyun Pan
 

More from Rouyun Pan (20)

調色筆記
調色筆記調色筆記
調色筆記
 
有點硬又不會太硬的DNN加速器
有點硬又不會太硬的DNN加速器有點硬又不會太硬的DNN加速器
有點硬又不會太硬的DNN加速器
 
深度學習工作流程
深度學習工作流程深度學習工作流程
深度學習工作流程
 
Tensorflow lite for microcontroller
Tensorflow lite for microcontrollerTensorflow lite for microcontroller
Tensorflow lite for microcontroller
 
Google edge tpu
Google edge tpuGoogle edge tpu
Google edge tpu
 
用Adobe Camera raw 進行膚色校正
用Adobe Camera raw 進行膚色校正用Adobe Camera raw 進行膚色校正
用Adobe Camera raw 進行膚色校正
 
給攝影師的古典藝術構圖
給攝影師的古典藝術構圖給攝影師的古典藝術構圖
給攝影師的古典藝術構圖
 
照片直方圖解析
照片直方圖解析照片直方圖解析
照片直方圖解析
 
Deep Learning Hardware: Past, Present, & Future
Deep Learning Hardware: Past, Present, & FutureDeep Learning Hardware: Past, Present, & Future
Deep Learning Hardware: Past, Present, & Future
 
Deep learning
Deep learningDeep learning
Deep learning
 
VR解密
VR解密VR解密
VR解密
 
「轉貼」移動互聯網行業盤點
「轉貼」移動互聯網行業盤點「轉貼」移動互聯網行業盤點
「轉貼」移動互聯網行業盤點
 
The overview of VR solutions
The overview of VR solutionsThe overview of VR solutions
The overview of VR solutions
 
Render thead of hwui
Render thead of hwuiRender thead of hwui
Render thead of hwui
 
Project Tango
Project TangoProject Tango
Project Tango
 
[轉貼] 社群大數據 - 輿情觀測及分析應用
[轉貼] 社群大數據 - 輿情觀測及分析應用[轉貼] 社群大數據 - 輿情觀測及分析應用
[轉貼] 社群大數據 - 輿情觀測及分析應用
 
財報分析1
財報分析1財報分析1
財報分析1
 
Device tree
Device treeDevice tree
Device tree
 
Android 待機與操作耗電檢查
Android 待機與操作耗電檢查Android 待機與操作耗電檢查
Android 待機與操作耗電檢查
 
Analyzing Display and Performance with Systrace
Analyzing Display and Performance with SystraceAnalyzing Display and Performance with Systrace
Analyzing Display and Performance with Systrace
 

Recently uploaded

StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with StrimziStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzisteffenkarlsson2
 
KLARNA - Language Models and Knowledge Graphs: A Systems Approach
KLARNA -  Language Models and Knowledge Graphs: A Systems ApproachKLARNA -  Language Models and Knowledge Graphs: A Systems Approach
KLARNA - Language Models and Knowledge Graphs: A Systems ApproachNeo4j
 
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)Gáspár Nagy
 
A Guideline to Gorgias to to Re:amaze Data Migration
A Guideline to Gorgias to to Re:amaze Data MigrationA Guideline to Gorgias to to Re:amaze Data Migration
A Guideline to Gorgias to to Re:amaze Data MigrationHelp Desk Migration
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandIES VE
 
Agnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in KrakówAgnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in Krakówbim.edu.pl
 
Benefits of Employee Monitoring Software
Benefits of  Employee Monitoring SoftwareBenefits of  Employee Monitoring Software
Benefits of Employee Monitoring SoftwareMera Monitor
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownloadvrstrong314
 
How to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabberHow to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabbereGrabber
 
iGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by SkilrockiGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by SkilrockSkilrock Technologies
 
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAlluxio, Inc.
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Anthony Dahanne
 
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1KnowledgeSeed
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Soroosh Khodami
 
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product UpdatesGraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product UpdatesNeo4j
 
Crafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationCrafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationWave PLM
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesKrzysztofKkol1
 
AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAlluxio, Inc.
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar
 

Recently uploaded (20)

StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with StrimziStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
KLARNA - Language Models and Knowledge Graphs: A Systems Approach
KLARNA -  Language Models and Knowledge Graphs: A Systems ApproachKLARNA -  Language Models and Knowledge Graphs: A Systems Approach
KLARNA - Language Models and Knowledge Graphs: A Systems Approach
 
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
 
A Guideline to Gorgias to to Re:amaze Data Migration
A Guideline to Gorgias to to Re:amaze Data MigrationA Guideline to Gorgias to to Re:amaze Data Migration
A Guideline to Gorgias to to Re:amaze Data Migration
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
Agnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in KrakówAgnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in Kraków
 
Benefits of Employee Monitoring Software
Benefits of  Employee Monitoring SoftwareBenefits of  Employee Monitoring Software
Benefits of Employee Monitoring Software
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
How to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabberHow to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabber
 
iGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by SkilrockiGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by Skilrock
 
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024
 
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product UpdatesGraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
 
Crafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationCrafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM Integration
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
 
AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in Michelangelo
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 

WebRTC overview

  • 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. 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. 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. 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. 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. WebRTC supported on >4bn devices by 2016 8
  • 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. Peer to peer, Server still be required? 11 Client A Client B
  • 12. Webrtc need these severs • Signaling Server • ICE Servers • Media Servers (optional) 12
  • 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. • SIP/SDP • XMPP/Jingle • Websockets • XHR/Comet Signaling option in WebRTC 14
  • 15. For Example: SDP(conti.) Session Origin Information Network Information Audio Information ICE Candidate for audio 15
  • 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. WebRTC Signaling triangle PeerConnection(audio, video and/or data) Web/Signaling server Client A Client B Signaling Signaling 17
  • 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. WebRTC & SIP PeerConnection(audio and/or video) Server A Client A SIP Phone SIP Server sip sip Signaling 19
  • 20. WebRTC & Jingle PeerConnection(audio and/or video) Server A Client A Jingle client XMPP Server Jingle jingle Signaling 20
  • 21. WebRTC & PSTN PeerConnection(audio) Server Client A Phone BGateway Signaling sip analog 21
  • 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. For example: Secure pathways Data(SCTP) Web/Signaling server Client A Client B Audio/video(SRTP) Signaling(https) Signaling(https) 24
  • 25. NAT traversal Client A NAT NAT Signaling Signaling 25
  • 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. STUN Server Client A NAT NAT Signaling Signaling Stun server Media 27
  • 28. TURN Server Client A NAT NAT Signaling Signaling Stun server Media Turn server Media 28
  • 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. 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. 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. 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. 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. 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. What can we do with WebRTC? 36
  • 40. Spy Camera? Wearable device 40