SlideShare a Scribd company logo
1 of 27
WebRTC Introduction
Derek Chiu
2016/9/1
Self-introduction
• 中文: 邱繼平
• English: Derek Chiu
• Previous Job: Benq/Qisda HW engineer
• SW experience: 1.5 years RoR/Front-end engineer
• Skill: RoR, Javascript, CSS, Objective C(a little),
Excel VBA
• Email: crsgypin@gmail
• FB: 邱繼平
Current Job
• VR
• Full-stack engineer, rather backend.
https://www.eyehouse.co/live?c=ec22522407104193
Let’s start: Web RTC
WebRTC
• Web Real-Time Communication
– WebRTC (Web Real-Time Communication) is an API definition drafted by theWorld Wide Web
Consortium (W3C) that supports applications for voice calling, video calling, and P2P file
sharing without the need of either internal or external plugins
– W3C (Big boss: Google)
– P2P (Server-free)
– Voice-calling, video-calling
– Without any plugins
• History
– May 2011, Google released
– Firefox 34.0 was released on December 1, 2014
• Who uses
– Snapchat
– Airbnb
– Hangout?
caniuse
http://caniuse.com/#search=webrtc
Solution for iOS
• Native code developed by Google
– https://webrtc.org/native-code/ios/
• OpenWebRTC
– Developed by Ericsson
– Bowser, not browser, is a browser in iOS that supported WebRTC
– Support native code for iOS app
– Support browser for iOS app
Rumor
• Apple is rolling WebRTC video-chat into Safari iOS, OS X browsers (13 Apr
2016)
• Apple is hiring engineers to bring WebRTC to Safari (Feb 21, 2016)
Concept
Video
• https://www.youtube.com/watch?v=kM2EFWpTWc8
Architecture
http://www.html5rocks.com/en/tutorials/webrtc/infrastructure/?redirect_from_locale=tw
Data
Server
STUN, TURN Servers
Peer-to-peer with STUN servers
TURN server
Directly Mode
Peer-to-peer with TURN servers
•ICE: Interactive Connectivity Establishment
•STUN: Session Traversal Utilities for NAT
•TURN: Traversal Using Relay NAT
SDP (Session Description Protocol)
For detail understanding, please refer to
https://webrtchacks.com/sdp-anatomy/
Example format
My note: an information of media for local peer device
Ice Candidates
Example format
My note: an information of internet channel for local peer device
Examples of STUN, TURN Servers
Setup for STUN and TURN servers
1. STUN server is free
2. TURN server is charge-required
ICE Candidate test
Test Your Ice Candidates
My PC test result (Chrome in Mac OS) Component Type
1. Srflx is by STUN server
2. Relay is by TURN server
Demo
Key Api
• GetUserMedia
– Get audio and video streaming
• RTCPeerConnection
– WebRTC peer object
• SDP
– Session Description Protocol
• ICECandidate
– Interactive Connectivity Establishment
Flow Chart of WebRTC
getUserMedia
Create Peer Object
Peer A Peer B
Create offer SDP
Set offer SDP
getUserMedia
Create Peer Object
Set Offer SDP
Create Answer SDP
Set Answer SDP
Send SDP of offer side
Set Answer SDP
Create local ice candidates
Set remote ice candidates
Create local ice candidates
Set remote ice candidates
Send local ice candidates
My Signaling Solution
Peer A Peer B
Rails
Server
My Server
Thin
Server
WebSocket
Implemented by Thin Server with Faye Gem
WebRTC in iOS
Solution1 in IOS
iOS
APP
Safari
getUserMedia api
Cam, Mic
1. Overwrite the original api for webRTC
2. Solutions are developed by two organizations
1. Google webRTC
2. Erission webRTC Data Server
SDP
ICE Candidate
Solution2 for iOS and Android
iOS/Android
APP
Cam, Mic
Data Server
SDP
ICE Candidate
1. Directly calling by APP native code
More
Third-Party IceServers
• Xirsys
– http://xirsys.com/
{"url":"stun:turn02.uswest.xirsys.com"}
{"username":"f75e313a-7027-11e6-a302-16f6c33bdaed",
"url":"turn:turn02.uswest.xirsys.com:80?transport=udp",
"credential":"f75e31c6-7027-11e6-9f9c-40a3acb71766"}
{"username":"f75e313a-7027-11e6-a302-16f6c33bdaed",
"url":"turn:turn02.uswest.xirsys.com:80?transport=tcp",
"credential":"f75e31c6-7027-11e6-9f9c-40a3acb71766"}
{"username":"f75e313a-7027-11e6-a302-16f6c33bdaed",
"url":"turn:turn02.uswest.xirsys.com:3478?transport=udp",
"credential":"f75e31c6-7027-11e6-9f9c-40a3acb71766"}
{"username":"f75e313a-7027-11e6-a302-16f6c33bdaed",
"url":"turn:turn02.uswest.xirsys.com:3478?transport=tcp",
"credential":"f75e31c6-7027-11e6-9f9c-40a3acb71766"}
chrome://webrtc-internals/
Google console for webrtc
Q&A

More Related Content

What's hot

Netflix Open Source: Building a Distributed and Automated Open Source Program
Netflix Open Source:  Building a Distributed and Automated Open Source ProgramNetflix Open Source:  Building a Distributed and Automated Open Source Program
Netflix Open Source: Building a Distributed and Automated Open Source Programaspyker
 
Managing changes to eZPublish Database
Managing changes to eZPublish DatabaseManaging changes to eZPublish Database
Managing changes to eZPublish DatabaseGaetano Giunta
 
DCEU 18: 5 Patterns for Success in Application Transformation
DCEU 18: 5 Patterns for Success in Application TransformationDCEU 18: 5 Patterns for Success in Application Transformation
DCEU 18: 5 Patterns for Success in Application TransformationDocker, Inc.
 
Engage 2019: Introduction to Node-Red
Engage 2019: Introduction to Node-RedEngage 2019: Introduction to Node-Red
Engage 2019: Introduction to Node-RedPaul Withers
 
Gabriele Provinciali/Gabriele Folchi/Luca Postacchini - Sviluppo con piattafo...
Gabriele Provinciali/Gabriele Folchi/Luca Postacchini - Sviluppo con piattafo...Gabriele Provinciali/Gabriele Folchi/Luca Postacchini - Sviluppo con piattafo...
Gabriele Provinciali/Gabriele Folchi/Luca Postacchini - Sviluppo con piattafo...Codemotion
 
DockerCon SF 2015: Cultural Change using Docker
DockerCon SF 2015: Cultural Change using Docker DockerCon SF 2015: Cultural Change using Docker
DockerCon SF 2015: Cultural Change using Docker Docker, Inc.
 
Spark Summit - Mobius C# Binding for Apache Spark
Spark Summit - Mobius C# Binding for Apache SparkSpark Summit - Mobius C# Binding for Apache Spark
Spark Summit - Mobius C# Binding for Apache Sparkshareddatamsft
 
What's new in Visual Studio for Mac for .NET Developers
What's new in Visual Studio for Mac for .NET DevelopersWhat's new in Visual Studio for Mac for .NET Developers
What's new in Visual Studio for Mac for .NET DevelopersJon Galloway
 
Supporting Digital Media Workflows in the Cloud with Perforce Helix
Supporting Digital Media Workflows in the Cloud with Perforce HelixSupporting Digital Media Workflows in the Cloud with Perforce Helix
Supporting Digital Media Workflows in the Cloud with Perforce HelixPerforce
 
Prototyping the internet of things with Node-RED
Prototyping the internet of things with Node-REDPrototyping the internet of things with Node-RED
Prototyping the internet of things with Node-REDPooja Mistry
 
The tools & technologies behind Resin.io
The tools & technologies behind Resin.ioThe tools & technologies behind Resin.io
The tools & technologies behind Resin.ioGreeceJS
 
DCEU 18: From Monolith to Microservices
DCEU 18: From Monolith to MicroservicesDCEU 18: From Monolith to Microservices
DCEU 18: From Monolith to MicroservicesDocker, Inc.
 
Make It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version ControlMake It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version Controlindiver
 
Import golang; struct microservice - Codemotion Rome 2015
Import golang; struct microservice - Codemotion Rome 2015Import golang; struct microservice - Codemotion Rome 2015
Import golang; struct microservice - Codemotion Rome 2015Giorgio Cefaro
 
Robust Stream Processing with Apache Flink
Robust Stream Processing with Apache FlinkRobust Stream Processing with Apache Flink
Robust Stream Processing with Apache FlinkJamie Grier
 
Loggly - 5 Popular .NET Logging Libraries
Loggly - 5 Popular .NET Logging LibrariesLoggly - 5 Popular .NET Logging Libraries
Loggly - 5 Popular .NET Logging LibrariesSolarWinds Loggly
 
Disruption from within
Disruption from withinDisruption from within
Disruption from withinDocker, Inc.
 
Managing microservices with istio on OpenShift - Meetup
Managing microservices with istio on OpenShift - MeetupManaging microservices with istio on OpenShift - Meetup
Managing microservices with istio on OpenShift - MeetupJosé Román Martín Gil
 
API Design in the Modern Era - Architecture Next 2020
API Design in the Modern Era - Architecture Next 2020API Design in the Modern Era - Architecture Next 2020
API Design in the Modern Era - Architecture Next 2020Eran Stiller
 

What's hot (20)

Netflix Open Source: Building a Distributed and Automated Open Source Program
Netflix Open Source:  Building a Distributed and Automated Open Source ProgramNetflix Open Source:  Building a Distributed and Automated Open Source Program
Netflix Open Source: Building a Distributed and Automated Open Source Program
 
Managing changes to eZPublish Database
Managing changes to eZPublish DatabaseManaging changes to eZPublish Database
Managing changes to eZPublish Database
 
Travis CI
Travis CITravis CI
Travis CI
 
DCEU 18: 5 Patterns for Success in Application Transformation
DCEU 18: 5 Patterns for Success in Application TransformationDCEU 18: 5 Patterns for Success in Application Transformation
DCEU 18: 5 Patterns for Success in Application Transformation
 
Engage 2019: Introduction to Node-Red
Engage 2019: Introduction to Node-RedEngage 2019: Introduction to Node-Red
Engage 2019: Introduction to Node-Red
 
Gabriele Provinciali/Gabriele Folchi/Luca Postacchini - Sviluppo con piattafo...
Gabriele Provinciali/Gabriele Folchi/Luca Postacchini - Sviluppo con piattafo...Gabriele Provinciali/Gabriele Folchi/Luca Postacchini - Sviluppo con piattafo...
Gabriele Provinciali/Gabriele Folchi/Luca Postacchini - Sviluppo con piattafo...
 
DockerCon SF 2015: Cultural Change using Docker
DockerCon SF 2015: Cultural Change using Docker DockerCon SF 2015: Cultural Change using Docker
DockerCon SF 2015: Cultural Change using Docker
 
Spark Summit - Mobius C# Binding for Apache Spark
Spark Summit - Mobius C# Binding for Apache SparkSpark Summit - Mobius C# Binding for Apache Spark
Spark Summit - Mobius C# Binding for Apache Spark
 
What's new in Visual Studio for Mac for .NET Developers
What's new in Visual Studio for Mac for .NET DevelopersWhat's new in Visual Studio for Mac for .NET Developers
What's new in Visual Studio for Mac for .NET Developers
 
Supporting Digital Media Workflows in the Cloud with Perforce Helix
Supporting Digital Media Workflows in the Cloud with Perforce HelixSupporting Digital Media Workflows in the Cloud with Perforce Helix
Supporting Digital Media Workflows in the Cloud with Perforce Helix
 
Prototyping the internet of things with Node-RED
Prototyping the internet of things with Node-REDPrototyping the internet of things with Node-RED
Prototyping the internet of things with Node-RED
 
The tools & technologies behind Resin.io
The tools & technologies behind Resin.ioThe tools & technologies behind Resin.io
The tools & technologies behind Resin.io
 
DCEU 18: From Monolith to Microservices
DCEU 18: From Monolith to MicroservicesDCEU 18: From Monolith to Microservices
DCEU 18: From Monolith to Microservices
 
Make It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version ControlMake It Cooler: Using Decentralized Version Control
Make It Cooler: Using Decentralized Version Control
 
Import golang; struct microservice - Codemotion Rome 2015
Import golang; struct microservice - Codemotion Rome 2015Import golang; struct microservice - Codemotion Rome 2015
Import golang; struct microservice - Codemotion Rome 2015
 
Robust Stream Processing with Apache Flink
Robust Stream Processing with Apache FlinkRobust Stream Processing with Apache Flink
Robust Stream Processing with Apache Flink
 
Loggly - 5 Popular .NET Logging Libraries
Loggly - 5 Popular .NET Logging LibrariesLoggly - 5 Popular .NET Logging Libraries
Loggly - 5 Popular .NET Logging Libraries
 
Disruption from within
Disruption from withinDisruption from within
Disruption from within
 
Managing microservices with istio on OpenShift - Meetup
Managing microservices with istio on OpenShift - MeetupManaging microservices with istio on OpenShift - Meetup
Managing microservices with istio on OpenShift - Meetup
 
API Design in the Modern Era - Architecture Next 2020
API Design in the Modern Era - Architecture Next 2020API Design in the Modern Era - Architecture Next 2020
API Design in the Modern Era - Architecture Next 2020
 

Similar to Web rtc 入門

WebRTC - Brings Real-Time to the Web
WebRTC - Brings Real-Time to the WebWebRTC - Brings Real-Time to the Web
WebRTC - Brings Real-Time to the WebVũ Nguyễn
 
WebRTC Webinar & Q&A - W3C WebRTC JS API Test Platform & Updates from W3C Lis...
WebRTC Webinar & Q&A - W3C WebRTC JS API Test Platform & Updates from W3C Lis...WebRTC Webinar & Q&A - W3C WebRTC JS API Test Platform & Updates from W3C Lis...
WebRTC Webinar & Q&A - W3C WebRTC JS API Test Platform & Updates from W3C Lis...Amir Zmora
 
WebRTC Webinar & Q&A - All About Microsoft & WebRTC Hosting Guest Speaker Ja...
WebRTC Webinar & Q&A -  All About Microsoft & WebRTC Hosting Guest Speaker Ja...WebRTC Webinar & Q&A -  All About Microsoft & WebRTC Hosting Guest Speaker Ja...
WebRTC Webinar & Q&A - All About Microsoft & WebRTC Hosting Guest Speaker Ja...Amir Zmora
 
.NET Core Today and Tomorrow
.NET Core Today and Tomorrow.NET Core Today and Tomorrow
.NET Core Today and TomorrowJon Galloway
 
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 - The Internals of WebRTC Browsers Impl...
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...Amir Zmora
 
DevOPS training - Day 1/2
DevOPS training - Day 1/2DevOPS training - Day 1/2
DevOPS training - Day 1/2Vincent Mercier
 
WebRTC: Bring real-time to the web - Barcamp Saigon 2012
WebRTC: Bring real-time to the web - Barcamp Saigon 2012WebRTC: Bring real-time to the web - Barcamp Saigon 2012
WebRTC: Bring real-time to the web - Barcamp Saigon 2012Oliver N
 
Introduction to WebRTC
Introduction to WebRTCIntroduction to WebRTC
Introduction to WebRTCPatrick Cason
 
WebRTC Overview by Dan Burnett
WebRTC Overview by Dan BurnettWebRTC Overview by Dan Burnett
WebRTC Overview by Dan BurnettMojo Lingo
 
WebRTC Standards & Implementation Q&A - WebRTC Standards Feature Complete 
No...
WebRTC Standards & Implementation Q&A - WebRTC Standards Feature Complete 
No...WebRTC Standards & Implementation Q&A - WebRTC Standards Feature Complete 
No...
WebRTC Standards & Implementation Q&A - WebRTC Standards Feature Complete 
No...Amir Zmora
 
[workshop] The Revolutionary WebRTC
[workshop] The Revolutionary WebRTC[workshop] The Revolutionary WebRTC
[workshop] The Revolutionary WebRTCGiacomo Vacca
 
WebRTC standards update - November 2014
WebRTC standards update - November 2014WebRTC standards update - November 2014
WebRTC standards update - November 2014Victor Pascual Ávila
 
WebRTC overview
WebRTC overviewWebRTC overview
WebRTC overviewRouyun Pan
 

Similar to Web rtc 入門 (20)

WebRTC - Brings Real-Time to the Web
WebRTC - Brings Real-Time to the WebWebRTC - Brings Real-Time to the Web
WebRTC - Brings Real-Time to the Web
 
WebRTC Webinar & Q&A - W3C WebRTC JS API Test Platform & Updates from W3C Lis...
WebRTC Webinar & Q&A - W3C WebRTC JS API Test Platform & Updates from W3C Lis...WebRTC Webinar & Q&A - W3C WebRTC JS API Test Platform & Updates from W3C Lis...
WebRTC Webinar & Q&A - W3C WebRTC JS API Test Platform & Updates from W3C Lis...
 
WebRTC Webinar & Q&A - All About Microsoft & WebRTC Hosting Guest Speaker Ja...
WebRTC Webinar & Q&A -  All About Microsoft & WebRTC Hosting Guest Speaker Ja...WebRTC Webinar & Q&A -  All About Microsoft & WebRTC Hosting Guest Speaker Ja...
WebRTC Webinar & Q&A - All About Microsoft & WebRTC Hosting Guest Speaker Ja...
 
.NET Core Today and Tomorrow
.NET Core Today and Tomorrow.NET Core Today and Tomorrow
.NET Core Today and Tomorrow
 
TADS Developer Summit WebRTC Dan Burnett
TADS Developer Summit WebRTC Dan BurnettTADS Developer Summit WebRTC Dan Burnett
TADS Developer Summit WebRTC Dan Burnett
 
DevCon5 (July 2014) - Acision SDK
DevCon5 (July 2014) - Acision SDKDevCon5 (July 2014) - Acision SDK
DevCon5 (July 2014) - Acision SDK
 
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...
 
DevOPS training - Day 1/2
DevOPS training - Day 1/2DevOPS training - Day 1/2
DevOPS training - Day 1/2
 
WebRTC: Bring real-time to the web - Barcamp Saigon 2012
WebRTC: Bring real-time to the web - Barcamp Saigon 2012WebRTC: Bring real-time to the web - Barcamp Saigon 2012
WebRTC: Bring real-time to the web - Barcamp Saigon 2012
 
Introduction to WebRTC
Introduction to WebRTCIntroduction to WebRTC
Introduction to WebRTC
 
WebRTC Overview by Dan Burnett
WebRTC Overview by Dan BurnettWebRTC Overview by Dan Burnett
WebRTC Overview by Dan Burnett
 
WebRTC
WebRTCWebRTC
WebRTC
 
DevCon5 (July 2014) - Intro to WebRTC
DevCon5 (July 2014) - Intro to WebRTCDevCon5 (July 2014) - Intro to WebRTC
DevCon5 (July 2014) - Intro to WebRTC
 
WebRTC Seminar Report
WebRTC  Seminar ReportWebRTC  Seminar Report
WebRTC Seminar Report
 
WebRTC Standards & Implementation Q&A - WebRTC Standards Feature Complete 
No...
WebRTC Standards & Implementation Q&A - WebRTC Standards Feature Complete 
No...WebRTC Standards & Implementation Q&A - WebRTC Standards Feature Complete 
No...
WebRTC Standards & Implementation Q&A - WebRTC Standards Feature Complete 
No...
 
[workshop] The Revolutionary WebRTC
[workshop] The Revolutionary WebRTC[workshop] The Revolutionary WebRTC
[workshop] The Revolutionary WebRTC
 
WebRTC standards update (Jul 2014)
WebRTC standards update (Jul 2014)WebRTC standards update (Jul 2014)
WebRTC standards update (Jul 2014)
 
WebRTC standards update - November 2014
WebRTC standards update - November 2014WebRTC standards update - November 2014
WebRTC standards update - November 2014
 
WebRTC overview
WebRTC overviewWebRTC overview
WebRTC overview
 
WebRTC presentation
WebRTC presentationWebRTC presentation
WebRTC presentation
 

Recently uploaded

Internet of things -Arshdeep Bahga .pptx
Internet of things -Arshdeep Bahga .pptxInternet of things -Arshdeep Bahga .pptx
Internet of things -Arshdeep Bahga .pptxVelmuruganTECE
 
Transport layer issues and challenges - Guide
Transport layer issues and challenges - GuideTransport layer issues and challenges - Guide
Transport layer issues and challenges - GuideGOPINATHS437943
 
Energy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptxEnergy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptxsiddharthjain2303
 
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catcherssdickerson1
 
Earthing details of Electrical Substation
Earthing details of Electrical SubstationEarthing details of Electrical Substation
Earthing details of Electrical Substationstephanwindworld
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girlsssuser7cb4ff
 
Correctly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleCorrectly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleAlluxio, Inc.
 
Industrial Safety Unit-I SAFETY TERMINOLOGIES
Industrial Safety Unit-I SAFETY TERMINOLOGIESIndustrial Safety Unit-I SAFETY TERMINOLOGIES
Industrial Safety Unit-I SAFETY TERMINOLOGIESNarmatha D
 
home automation using Arduino by Aditya Prasad
home automation using Arduino by Aditya Prasadhome automation using Arduino by Aditya Prasad
home automation using Arduino by Aditya Prasadaditya806802
 
Mine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptxMine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptxRomil Mishra
 
welding defects observed during the welding
welding defects observed during the weldingwelding defects observed during the welding
welding defects observed during the weldingMuhammadUzairLiaqat
 
Vishratwadi & Ghorpadi Bridge Tender documents
Vishratwadi & Ghorpadi Bridge Tender documentsVishratwadi & Ghorpadi Bridge Tender documents
Vishratwadi & Ghorpadi Bridge Tender documentsSachinPawar510423
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxk795866
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionDr.Costas Sachpazis
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...asadnawaz62
 
Indian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.pptIndian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.pptMadan Karki
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...VICTOR MAESTRE RAMIREZ
 
Research Methodology for Engineering pdf
Research Methodology for Engineering pdfResearch Methodology for Engineering pdf
Research Methodology for Engineering pdfCaalaaAbdulkerim
 
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsyncWhy does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsyncssuser2ae721
 

Recently uploaded (20)

Internet of things -Arshdeep Bahga .pptx
Internet of things -Arshdeep Bahga .pptxInternet of things -Arshdeep Bahga .pptx
Internet of things -Arshdeep Bahga .pptx
 
Transport layer issues and challenges - Guide
Transport layer issues and challenges - GuideTransport layer issues and challenges - Guide
Transport layer issues and challenges - Guide
 
Energy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptxEnergy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptx
 
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
 
Earthing details of Electrical Substation
Earthing details of Electrical SubstationEarthing details of Electrical Substation
Earthing details of Electrical Substation
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girls
 
Correctly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleCorrectly Loading Incremental Data at Scale
Correctly Loading Incremental Data at Scale
 
Industrial Safety Unit-I SAFETY TERMINOLOGIES
Industrial Safety Unit-I SAFETY TERMINOLOGIESIndustrial Safety Unit-I SAFETY TERMINOLOGIES
Industrial Safety Unit-I SAFETY TERMINOLOGIES
 
home automation using Arduino by Aditya Prasad
home automation using Arduino by Aditya Prasadhome automation using Arduino by Aditya Prasad
home automation using Arduino by Aditya Prasad
 
Mine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptxMine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptx
 
welding defects observed during the welding
welding defects observed during the weldingwelding defects observed during the welding
welding defects observed during the welding
 
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
 
Vishratwadi & Ghorpadi Bridge Tender documents
Vishratwadi & Ghorpadi Bridge Tender documentsVishratwadi & Ghorpadi Bridge Tender documents
Vishratwadi & Ghorpadi Bridge Tender documents
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptx
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...
 
Indian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.pptIndian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.ppt
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...
 
Research Methodology for Engineering pdf
Research Methodology for Engineering pdfResearch Methodology for Engineering pdf
Research Methodology for Engineering pdf
 
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsyncWhy does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
Why does (not) Kafka need fsync: Eliminating tail latency spikes caused by fsync
 

Web rtc 入門

  • 2. Self-introduction • 中文: 邱繼平 • English: Derek Chiu • Previous Job: Benq/Qisda HW engineer • SW experience: 1.5 years RoR/Front-end engineer • Skill: RoR, Javascript, CSS, Objective C(a little), Excel VBA • Email: crsgypin@gmail • FB: 邱繼平
  • 3. Current Job • VR • Full-stack engineer, rather backend. https://www.eyehouse.co/live?c=ec22522407104193
  • 5. WebRTC • Web Real-Time Communication – WebRTC (Web Real-Time Communication) is an API definition drafted by theWorld Wide Web Consortium (W3C) that supports applications for voice calling, video calling, and P2P file sharing without the need of either internal or external plugins – W3C (Big boss: Google) – P2P (Server-free) – Voice-calling, video-calling – Without any plugins • History – May 2011, Google released – Firefox 34.0 was released on December 1, 2014 • Who uses – Snapchat – Airbnb – Hangout?
  • 7. Solution for iOS • Native code developed by Google – https://webrtc.org/native-code/ios/ • OpenWebRTC – Developed by Ericsson – Bowser, not browser, is a browser in iOS that supported WebRTC – Support native code for iOS app – Support browser for iOS app
  • 8. Rumor • Apple is rolling WebRTC video-chat into Safari iOS, OS X browsers (13 Apr 2016) • Apple is hiring engineers to bring WebRTC to Safari (Feb 21, 2016)
  • 12. STUN, TURN Servers Peer-to-peer with STUN servers TURN server Directly Mode Peer-to-peer with TURN servers •ICE: Interactive Connectivity Establishment •STUN: Session Traversal Utilities for NAT •TURN: Traversal Using Relay NAT
  • 13. SDP (Session Description Protocol) For detail understanding, please refer to https://webrtchacks.com/sdp-anatomy/ Example format My note: an information of media for local peer device
  • 14. Ice Candidates Example format My note: an information of internet channel for local peer device
  • 15. Examples of STUN, TURN Servers Setup for STUN and TURN servers 1. STUN server is free 2. TURN server is charge-required
  • 16. ICE Candidate test Test Your Ice Candidates My PC test result (Chrome in Mac OS) Component Type 1. Srflx is by STUN server 2. Relay is by TURN server
  • 17. Demo
  • 18. Key Api • GetUserMedia – Get audio and video streaming • RTCPeerConnection – WebRTC peer object • SDP – Session Description Protocol • ICECandidate – Interactive Connectivity Establishment
  • 19. Flow Chart of WebRTC getUserMedia Create Peer Object Peer A Peer B Create offer SDP Set offer SDP getUserMedia Create Peer Object Set Offer SDP Create Answer SDP Set Answer SDP Send SDP of offer side Set Answer SDP Create local ice candidates Set remote ice candidates Create local ice candidates Set remote ice candidates Send local ice candidates
  • 20. My Signaling Solution Peer A Peer B Rails Server My Server Thin Server WebSocket Implemented by Thin Server with Faye Gem
  • 22. Solution1 in IOS iOS APP Safari getUserMedia api Cam, Mic 1. Overwrite the original api for webRTC 2. Solutions are developed by two organizations 1. Google webRTC 2. Erission webRTC Data Server SDP ICE Candidate
  • 23. Solution2 for iOS and Android iOS/Android APP Cam, Mic Data Server SDP ICE Candidate 1. Directly calling by APP native code
  • 24. More
  • 25. Third-Party IceServers • Xirsys – http://xirsys.com/ {"url":"stun:turn02.uswest.xirsys.com"} {"username":"f75e313a-7027-11e6-a302-16f6c33bdaed", "url":"turn:turn02.uswest.xirsys.com:80?transport=udp", "credential":"f75e31c6-7027-11e6-9f9c-40a3acb71766"} {"username":"f75e313a-7027-11e6-a302-16f6c33bdaed", "url":"turn:turn02.uswest.xirsys.com:80?transport=tcp", "credential":"f75e31c6-7027-11e6-9f9c-40a3acb71766"} {"username":"f75e313a-7027-11e6-a302-16f6c33bdaed", "url":"turn:turn02.uswest.xirsys.com:3478?transport=udp", "credential":"f75e31c6-7027-11e6-9f9c-40a3acb71766"} {"username":"f75e313a-7027-11e6-a302-16f6c33bdaed", "url":"turn:turn02.uswest.xirsys.com:3478?transport=tcp", "credential":"f75e31c6-7027-11e6-9f9c-40a3acb71766"}
  • 27. Q&A