SlideShare a Scribd company logo
WebRTC

Bring real-time to the web
HCMC University of Technology

NEW TRENDS of
WEB TECHNOLOGY ON MOBILE

VIDEO COMMUNICATION
with

09/2012
I. What is WebRTC ?

II. Key Features
1. Media Stream
2. Peer Connection
3. Data Channels
III. Applications
IV. Demos
WebRTC
TỔNG QUAN

Bring real-time to the web
Story of Google
•
•
•

Justin Uberti
Google Hangout, Google Video Chat
Gmail Call Phone
Plugins
- Really Complicated
- Security
- Codec, Licensing
- Other browsers, manufacturers

TỔNG QUAN

Build one platform, not just for web, but for the entire
communications industry.
What is WebRTC ?
• Real Time Communications meets the web
• A state-of-the-art audio/video communication stack in your web
browser
• A cross-industry effort to create a new communications platform

TỔNG QUAN

“WebRTC and HTML5 could enable the same transformation for real
time that the original browser did for information.”
Phil Edholm
WebRTC Support
• Desktop browsers
- Chrome 21
- Opera 12
- Firefox 17
- IE ?

2013

04/2012

Mozilla Firefox nightly build

01/2012

Google Chrome dev

05/2011

W3C WebRTC WG

04/2011

IETF RTCWeb WG

TỔNG QUAN

• Mobile browsers
• Native C++
• Desktop and mobile

Release
ỨNG DỤNG
Key Features
TRONG ĐÀO TẠO TỪ XA
I. What is WebRTC ?

II. Key Features
1. Media Stream
2. Peer Connection
3. Data Channels
III. Applications
IV. Demos
Signaling
path
Web Server
Application defined over
HTTP / Websockets

Web Server

TỔNG QUAN

Application defined over
HTTP / Websockets

Media path

Browser

Browser
Key Features
1. Media Stream
Access audio and video
Media Stream
•
•
•
•

Represent a MediaSource
getUserMedia API to access camera/microphone
Use with <video> as an URL
Send to remote peer

Combine with other HTML5 for funny effects
• <canvas>
• CSS
• WebGL
getUserMedia
<script>
navigator.webkitGetUserMedia({video:true}, onGotStream,
onFailedStream);
onGotStream = function(stream) {
var url = webkitURL.createObjectURL(stream);
video.src = url;
}
</script>
<video id="video" autoplay="autoplay" />
Key Features
2. Peer Connection
Audio and video session
PeerConnection
API for establishing audio/video calls
Built-in
• Peer-to-peer
• Codec control
• Encryption
• Bandwidth management
Setup a session
To start a session, a client needs
• Local Session Description
• Remote Session Description
• Remote Session Candidates
Setup a session
1. Create Local Session Description
2. Send it to remote peer B (OFFER)
3. Receive Session Description from peer A
4. Create Session Description
send back to peer A (ANSWER)
5,6. Send ICECadidate to other peer
7. Setup media path
2

5

6

1
7

3

4
PeerConnection API
Caller side

Callee side

Create a new PeerConnection
PeerConnection(config, iceCallback)
addStream(stream)

<receive call from caller>

Create local SessionDescription
createOffer(hints)
setLocalDescription(type, desc)
startIce()
<wait for response from callee>
Receive remote SessionDescription
setRemoteDescription(type, desc)

Create PeerConnection
PeerConnection(config, iceCallback)
setRemoteDescription(type, desc)

Create local SessionDescription
createAnswer(offer, hints)
setLocalDescription(type, desc)
startIce()
Sample Code
<script>
pc1 = new webkitPeerConnection00 (null, onIceCandidate1);
// create PC
pc2 = new webkitPeerConnection00 (null, onIceCandidate2);
// create PC
pc2.onaddstream = onRemoteStream;
pc1.addStream (localStream);
// add local stream
var offer = pc1.createOffer(null);
// create an offer
pc1.setLocalDescription(pc1.SDP_OFFER, offer);
// set it on both PC
pc2.setRemoteDescription(pc2.SDP_OFFER, offer);
var answer = pc2.createAnswer(offer.toSdp(), null);
// create an answer
pc2.setLocalDescription(pc2.SDP_ANSWER, answer);
// set it on both PC
pc1.setRemoteDescription(pc1.SDP_ANSWER, answer);
pc1.startIce();
// start the connection process
pc2.startIce();
</script>
WebRTC Signaling Channel
• XMLHttpRequest (AJAX)
• WebSocket
• Google App Engine
Key Features
3. Data Channels

Peer-to-peer data exchange in browsers
Data Channel
Peer-to-peer exchange of arbitrary application data
•
•
•

Low latency
High message rate/thoughput
Reliable and unreliable semantics

Use cases
•
•
•
•
•

Multiplayer game
Remote desktop
Real-time interactive (chat, drawing…)
File transfer
Decentralized networks
Sample Code
<script>
dc1 = pc1.createDataChannel ("a label");
dc2 = pc2.createDataChannel ("a label");
dc2.onmessage = function(e) {
textarea.value += e.data;

}
function send() {
dc1.send(input.value);
}
</script>

// reliable mode
Web Server
Web Server
CƠ SỞ LÝ THUYẾT
Applications
APPLICATIONS

Video Communication
Gaming
E-Commerce
Live Video
Record + Replay
Phone Call

File Transfer
Remote Desktop
VIDEO COMMUNICATION

Web Server
Media Server

Web Server

Media
Server
SIP

Providers 1

Providers 2

Live Video

Web
Server

Media
Server
Start ups
Zingaya (Call' button for websites) enables voice calls through any
computer from a webpage. No download or phone is required.
Voxeo Labs (Open source enabler for WebRTC services) Phono is a jQuery
plug-in that turns any Web browser into a multichannel communications
platform
Utribo (SaaS Service) 'Connect' by Utribo is a Software as a Service that
enables subscribers to receive calls made in a web browser to their
computer, phone, ….
Tenhands (Enterprise HD Video Collaboration) Desktop HD video
collaboration service, it's free and built for business needs.
Bistri (Social Video) Video chat with fun video effects, take screenshots of
calls, share them with friends or social networks. Bistri runs in the
browser, no need to install additional software or plugins.
WebRTC

Bring real-time to the web
HCMC University of Technology

WebRTC

Bring real-time to the web

Nguyễn Mậu Quang Vũ

Phạm Nguyên Trình

nguyenmauquangvu@gmail.com

hlv.nguyentrinh@gmail.com

More Related Content

What's hot

What's hot (19)

Володимир Дубенко "Node.js for desktop development (based on Electron library)"
Володимир Дубенко "Node.js for desktop development (based on Electron library)"Володимир Дубенко "Node.js for desktop development (based on Electron library)"
Володимир Дубенко "Node.js for desktop development (based on Electron library)"
 
Continuous Integration and PHP
Continuous Integration and PHPContinuous Integration and PHP
Continuous Integration and PHP
 
Jenkins to Gitlab - Intelligent Build-Pipelines
Jenkins to Gitlab - Intelligent Build-PipelinesJenkins to Gitlab - Intelligent Build-Pipelines
Jenkins to Gitlab - Intelligent Build-Pipelines
 
Intro 2 docker
Intro 2 dockerIntro 2 docker
Intro 2 docker
 
GitHub Actions for 5 minutes
GitHub Actions for 5 minutesGitHub Actions for 5 minutes
GitHub Actions for 5 minutes
 
Testing as a container
Testing as a containerTesting as a container
Testing as a container
 
Magento Continuous Integration & Continuous Delivery @MM17HR
Magento Continuous Integration & Continuous Delivery @MM17HRMagento Continuous Integration & Continuous Delivery @MM17HR
Magento Continuous Integration & Continuous Delivery @MM17HR
 
Erich Gamma at SpringOne Platform 2017
Erich Gamma at SpringOne Platform 2017Erich Gamma at SpringOne Platform 2017
Erich Gamma at SpringOne Platform 2017
 
DevAssistant, Docker and You
DevAssistant, Docker and YouDevAssistant, Docker and You
DevAssistant, Docker and You
 
Docker - modern platform for developement and operations
Docker - modern platform for developement and operationsDocker - modern platform for developement and operations
Docker - modern platform for developement and operations
 
Dockerizing BDD : Ruby-Cucumber Example
Dockerizing BDD : Ruby-Cucumber ExampleDockerizing BDD : Ruby-Cucumber Example
Dockerizing BDD : Ruby-Cucumber Example
 
Flash Camp Chennai - Build automation of Flex and AIR applications
Flash Camp Chennai - Build automation of Flex and AIR applicationsFlash Camp Chennai - Build automation of Flex and AIR applications
Flash Camp Chennai - Build automation of Flex and AIR applications
 
Turnkey Continuous Delivery
Turnkey Continuous DeliveryTurnkey Continuous Delivery
Turnkey Continuous Delivery
 
Docker Best Practices Workshop
Docker Best Practices WorkshopDocker Best Practices Workshop
Docker Best Practices Workshop
 
"13 ways to run web applications on the Internet" Andrii Shumada
"13 ways to run web applications on the Internet" Andrii Shumada"13 ways to run web applications on the Internet" Andrii Shumada
"13 ways to run web applications on the Internet" Andrii Shumada
 
Grunt Continuous Development of the Front End Tier
Grunt Continuous Development of the Front End TierGrunt Continuous Development of the Front End Tier
Grunt Continuous Development of the Front End Tier
 
[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze
[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze
[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze
 
20170321 docker with Visual Studio 2017
20170321 docker with Visual Studio 201720170321 docker with Visual Studio 2017
20170321 docker with Visual Studio 2017
 
Workshop - Golang language
Workshop - Golang languageWorkshop - Golang language
Workshop - Golang language
 

Viewers also liked

Trends in Mobile Consumer Technology Q3 2013
Trends in Mobile Consumer Technology Q3 2013 Trends in Mobile Consumer Technology Q3 2013
Trends in Mobile Consumer Technology Q3 2013
Adam Epstein
 
Gdc2013 designing virtual markets for fun and profit
Gdc2013 designing virtual markets for fun and profitGdc2013 designing virtual markets for fun and profit
Gdc2013 designing virtual markets for fun and profit
Christina Hsu
 
10 latest trends of mobile technology
10 latest trends of mobile technology10 latest trends of mobile technology
10 latest trends of mobile technology
Faizan Subzwari
 

Viewers also liked (19)

Trends in Mobile Consumer Technology Q3 2013
Trends in Mobile Consumer Technology Q3 2013 Trends in Mobile Consumer Technology Q3 2013
Trends in Mobile Consumer Technology Q3 2013
 
Alliance baskin
Alliance baskinAlliance baskin
Alliance baskin
 
Mobile Technology Trends of 2015
Mobile Technology Trends of 2015Mobile Technology Trends of 2015
Mobile Technology Trends of 2015
 
2016 mobile trends
2016 mobile trends2016 mobile trends
2016 mobile trends
 
Gdc2013 designing virtual markets for fun and profit
Gdc2013 designing virtual markets for fun and profitGdc2013 designing virtual markets for fun and profit
Gdc2013 designing virtual markets for fun and profit
 
Trends in mobile technology for the event market FEO 2015
Trends in mobile technology for the event market FEO 2015Trends in mobile technology for the event market FEO 2015
Trends in mobile technology for the event market FEO 2015
 
WITI Summit 2013 Mobile Technology Trends & Strategy
WITI Summit 2013 Mobile Technology Trends & StrategyWITI Summit 2013 Mobile Technology Trends & Strategy
WITI Summit 2013 Mobile Technology Trends & Strategy
 
Connecting with Audiences through Personal Mobile Devices: Mobile Technology...
 Connecting with Audiences through Personal Mobile Devices: Mobile Technology... Connecting with Audiences through Personal Mobile Devices: Mobile Technology...
Connecting with Audiences through Personal Mobile Devices: Mobile Technology...
 
2017 ABA Cultivating Customer Relationship with Mobile Technology
2017 ABA Cultivating Customer Relationship with Mobile Technology 2017 ABA Cultivating Customer Relationship with Mobile Technology
2017 ABA Cultivating Customer Relationship with Mobile Technology
 
2017 ABA Emerging Trends in Mobile Technology
2017 ABA Emerging Trends in Mobile Technology2017 ABA Emerging Trends in Mobile Technology
2017 ABA Emerging Trends in Mobile Technology
 
Lekcija "Development Trends For Mobile Platforms And Its Technology" (10.12.2...
Lekcija "Development Trends For Mobile Platforms And Its Technology" (10.12.2...Lekcija "Development Trends For Mobile Platforms And Its Technology" (10.12.2...
Lekcija "Development Trends For Mobile Platforms And Its Technology" (10.12.2...
 
VIRTUAL REALITY. TRENDS AND APPLICATIONS
VIRTUAL REALITY. TRENDS AND APPLICATIONSVIRTUAL REALITY. TRENDS AND APPLICATIONS
VIRTUAL REALITY. TRENDS AND APPLICATIONS
 
Future Web Trends
Future Web TrendsFuture Web Trends
Future Web Trends
 
O problema da indução
O problema da induçãoO problema da indução
O problema da indução
 
Tech & Media Trends 2015 @ Mobile World Congress with Havas + Mobext
Tech &  Media Trends 2015 @ Mobile World Congress with Havas + MobextTech &  Media Trends 2015 @ Mobile World Congress with Havas + Mobext
Tech & Media Trends 2015 @ Mobile World Congress with Havas + Mobext
 
When will Virtual Reality become Reality? @NED2015
When will Virtual Reality become Reality? @NED2015 When will Virtual Reality become Reality? @NED2015
When will Virtual Reality become Reality? @NED2015
 
10 latest trends of mobile technology
10 latest trends of mobile technology10 latest trends of mobile technology
10 latest trends of mobile technology
 
4 Technology Trends to Watch - Growth of Mobile, Internet of Things, 3D Print...
4 Technology Trends to Watch - Growth of Mobile, Internet of Things, 3D Print...4 Technology Trends to Watch - Growth of Mobile, Internet of Things, 3D Print...
4 Technology Trends to Watch - Growth of Mobile, Internet of Things, 3D Print...
 
Web 3.0 The Semantic Web
Web 3.0 The Semantic WebWeb 3.0 The Semantic Web
Web 3.0 The Semantic Web
 

Similar to WebRTC - Brings Real-Time to the Web

Similar to WebRTC - Brings Real-Time to the Web (20)

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
 
WebRTC
WebRTCWebRTC
WebRTC
 
DEVNET-1122 Integrating Cisco Collaboration into Web Apps
DEVNET-1122	Integrating Cisco Collaboration into Web AppsDEVNET-1122	Integrating Cisco Collaboration into Web Apps
DEVNET-1122 Integrating Cisco Collaboration into Web Apps
 
Web rtc 入門
Web rtc 入門Web rtc 入門
Web rtc 入門
 
Html5 RTC - 1
Html5 RTC  - 1Html5 RTC  - 1
Html5 RTC - 1
 
WebRTC Seminar Report
WebRTC  Seminar ReportWebRTC  Seminar Report
WebRTC Seminar Report
 
Introduction to WebRTC
Introduction to WebRTCIntroduction to WebRTC
Introduction to WebRTC
 
DevCon 5 (December 2013) - WebRTC & WebSockets
DevCon 5 (December 2013) - WebRTC & WebSocketsDevCon 5 (December 2013) - WebRTC & WebSockets
DevCon 5 (December 2013) - WebRTC & WebSockets
 
Webrtc in Real world
Webrtc in Real world Webrtc in Real world
Webrtc in Real world
 
[workshop] The Revolutionary WebRTC
[workshop] The Revolutionary WebRTC[workshop] The Revolutionary WebRTC
[workshop] The Revolutionary WebRTC
 
Meet qt intro
Meet qt introMeet qt intro
Meet qt intro
 
Meet qt intro
Meet qt introMeet qt intro
Meet qt intro
 
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...
 
Introduction to WebRTC
Introduction to WebRTCIntroduction to WebRTC
Introduction to WebRTC
 
minor-project-1.ppt
minor-project-1.pptminor-project-1.ppt
minor-project-1.ppt
 
The Enterprise wants WebRTC -- and it needs Middleware to get it! (IIT RTC Co...
The Enterprise wants WebRTC -- and it needs Middleware to get it! (IIT RTC Co...The Enterprise wants WebRTC -- and it needs Middleware to get it! (IIT RTC Co...
The Enterprise wants WebRTC -- and it needs Middleware to get it! (IIT RTC Co...
 
WebRTC Overview
WebRTC OverviewWebRTC Overview
WebRTC Overview
 
WebRTC presentation
WebRTC presentationWebRTC presentation
WebRTC presentation
 
Getting Started with WebRTC
Getting Started with WebRTCGetting Started with WebRTC
Getting Started with WebRTC
 
DevCon5 (July 2014) - Acision SDK
DevCon5 (July 2014) - Acision SDKDevCon5 (July 2014) - Acision SDK
DevCon5 (July 2014) - Acision SDK
 

Recently uploaded

Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Peter Udo Diehl
 

Recently uploaded (20)

Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
Agentic RAG What it is its types applications and implementation.pdf
Agentic RAG What it is its types applications and implementation.pdfAgentic RAG What it is its types applications and implementation.pdf
Agentic RAG What it is its types applications and implementation.pdf
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. Startups
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 

WebRTC - Brings Real-Time to the Web

  • 2. HCMC University of Technology NEW TRENDS of WEB TECHNOLOGY ON MOBILE VIDEO COMMUNICATION with 09/2012
  • 3. I. What is WebRTC ? II. Key Features 1. Media Stream 2. Peer Connection 3. Data Channels III. Applications IV. Demos
  • 5. Story of Google • • • Justin Uberti Google Hangout, Google Video Chat Gmail Call Phone Plugins - Really Complicated - Security - Codec, Licensing - Other browsers, manufacturers TỔNG QUAN Build one platform, not just for web, but for the entire communications industry.
  • 6. What is WebRTC ? • Real Time Communications meets the web • A state-of-the-art audio/video communication stack in your web browser • A cross-industry effort to create a new communications platform TỔNG QUAN “WebRTC and HTML5 could enable the same transformation for real time that the original browser did for information.” Phil Edholm
  • 7. WebRTC Support • Desktop browsers - Chrome 21 - Opera 12 - Firefox 17 - IE ? 2013 04/2012 Mozilla Firefox nightly build 01/2012 Google Chrome dev 05/2011 W3C WebRTC WG 04/2011 IETF RTCWeb WG TỔNG QUAN • Mobile browsers • Native C++ • Desktop and mobile Release
  • 8. ỨNG DỤNG Key Features TRONG ĐÀO TẠO TỪ XA
  • 9. I. What is WebRTC ? II. Key Features 1. Media Stream 2. Peer Connection 3. Data Channels III. Applications IV. Demos
  • 10. Signaling path Web Server Application defined over HTTP / Websockets Web Server TỔNG QUAN Application defined over HTTP / Websockets Media path Browser Browser
  • 11. Key Features 1. Media Stream Access audio and video
  • 12. Media Stream • • • • Represent a MediaSource getUserMedia API to access camera/microphone Use with <video> as an URL Send to remote peer Combine with other HTML5 for funny effects • <canvas> • CSS • WebGL
  • 13. getUserMedia <script> navigator.webkitGetUserMedia({video:true}, onGotStream, onFailedStream); onGotStream = function(stream) { var url = webkitURL.createObjectURL(stream); video.src = url; } </script> <video id="video" autoplay="autoplay" />
  • 14. Key Features 2. Peer Connection Audio and video session
  • 15. PeerConnection API for establishing audio/video calls Built-in • Peer-to-peer • Codec control • Encryption • Bandwidth management
  • 16. Setup a session To start a session, a client needs • Local Session Description • Remote Session Description • Remote Session Candidates
  • 17. Setup a session 1. Create Local Session Description 2. Send it to remote peer B (OFFER) 3. Receive Session Description from peer A 4. Create Session Description send back to peer A (ANSWER) 5,6. Send ICECadidate to other peer 7. Setup media path 2 5 6 1 7 3 4
  • 18. PeerConnection API Caller side Callee side Create a new PeerConnection PeerConnection(config, iceCallback) addStream(stream) <receive call from caller> Create local SessionDescription createOffer(hints) setLocalDescription(type, desc) startIce() <wait for response from callee> Receive remote SessionDescription setRemoteDescription(type, desc) Create PeerConnection PeerConnection(config, iceCallback) setRemoteDescription(type, desc) Create local SessionDescription createAnswer(offer, hints) setLocalDescription(type, desc) startIce()
  • 19. Sample Code <script> pc1 = new webkitPeerConnection00 (null, onIceCandidate1); // create PC pc2 = new webkitPeerConnection00 (null, onIceCandidate2); // create PC pc2.onaddstream = onRemoteStream; pc1.addStream (localStream); // add local stream var offer = pc1.createOffer(null); // create an offer pc1.setLocalDescription(pc1.SDP_OFFER, offer); // set it on both PC pc2.setRemoteDescription(pc2.SDP_OFFER, offer); var answer = pc2.createAnswer(offer.toSdp(), null); // create an answer pc2.setLocalDescription(pc2.SDP_ANSWER, answer); // set it on both PC pc1.setRemoteDescription(pc1.SDP_ANSWER, answer); pc1.startIce(); // start the connection process pc2.startIce(); </script>
  • 20. WebRTC Signaling Channel • XMLHttpRequest (AJAX) • WebSocket • Google App Engine
  • 21. Key Features 3. Data Channels Peer-to-peer data exchange in browsers
  • 22. Data Channel Peer-to-peer exchange of arbitrary application data • • • Low latency High message rate/thoughput Reliable and unreliable semantics Use cases • • • • • Multiplayer game Remote desktop Real-time interactive (chat, drawing…) File transfer Decentralized networks
  • 23. Sample Code <script> dc1 = pc1.createDataChannel ("a label"); dc2 = pc2.createDataChannel ("a label"); dc2.onmessage = function(e) { textarea.value += e.data; } function send() { dc1.send(input.value); } </script> // reliable mode
  • 26. CƠ SỞ LÝ THUYẾT Applications
  • 27. APPLICATIONS Video Communication Gaming E-Commerce Live Video Record + Replay Phone Call File Transfer Remote Desktop
  • 29. Media Server Web Server Media Server SIP Providers 1 Providers 2 Live Video Web Server Media Server
  • 30. Start ups Zingaya (Call' button for websites) enables voice calls through any computer from a webpage. No download or phone is required. Voxeo Labs (Open source enabler for WebRTC services) Phono is a jQuery plug-in that turns any Web browser into a multichannel communications platform Utribo (SaaS Service) 'Connect' by Utribo is a Software as a Service that enables subscribers to receive calls made in a web browser to their computer, phone, …. Tenhands (Enterprise HD Video Collaboration) Desktop HD video collaboration service, it's free and built for business needs. Bistri (Social Video) Video chat with fun video effects, take screenshots of calls, share them with friends or social networks. Bistri runs in the browser, no need to install additional software or plugins.
  • 32. HCMC University of Technology WebRTC Bring real-time to the web Nguyễn Mậu Quang Vũ Phạm Nguyên Trình nguyenmauquangvu@gmail.com hlv.nguyentrinh@gmail.com