SlideShare a Scribd company logo
1 of 32
Download to read offline
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

Володимир Дубенко "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)"Fwdays
 
Continuous Integration and PHP
Continuous Integration and PHPContinuous Integration and PHP
Continuous Integration and PHPArno Schneider
 
Jenkins to Gitlab - Intelligent Build-Pipelines
Jenkins to Gitlab - Intelligent Build-PipelinesJenkins to Gitlab - Intelligent Build-Pipelines
Jenkins to Gitlab - Intelligent Build-PipelinesChristian Münch
 
Intro 2 docker
Intro 2 dockerIntro 2 docker
Intro 2 dockerHanoiJUG
 
GitHub Actions for 5 minutes
GitHub Actions for 5 minutesGitHub Actions for 5 minutes
GitHub Actions for 5 minutesSvetlin Nakov
 
Testing as a container
Testing as a containerTesting as a container
Testing as a containerIrfan Ahmad
 
Magento Continuous Integration & Continuous Delivery @MM17HR
Magento Continuous Integration & Continuous Delivery @MM17HRMagento Continuous Integration & Continuous Delivery @MM17HR
Magento Continuous Integration & Continuous Delivery @MM17HRDenis Ristic
 
Erich Gamma at SpringOne Platform 2017
Erich Gamma at SpringOne Platform 2017Erich Gamma at SpringOne Platform 2017
Erich Gamma at SpringOne Platform 2017VMware Tanzu
 
DevAssistant, Docker and You
DevAssistant, Docker and YouDevAssistant, Docker and You
DevAssistant, Docker and YouBalaBit
 
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 operationsLadislav Prskavec
 
Dockerizing BDD : Ruby-Cucumber Example
Dockerizing BDD : Ruby-Cucumber ExampleDockerizing BDD : Ruby-Cucumber Example
Dockerizing BDD : Ruby-Cucumber ExampleShashikant Jagtap
 
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 applicationsRIA RUI Society
 
Turnkey Continuous Delivery
Turnkey Continuous DeliveryTurnkey Continuous Delivery
Turnkey Continuous DeliveryGianni Bombelli
 
Docker Best Practices Workshop
Docker Best Practices WorkshopDocker Best Practices Workshop
Docker Best Practices WorkshopAhmed AbouZaid
 
"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 ShumadaFwdays
 
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 TierErick Brito
 
[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 chmurzeFuture Processing
 
20170321 docker with Visual Studio 2017
20170321 docker with Visual Studio 201720170321 docker with Visual Studio 2017
20170321 docker with Visual Studio 2017Takayoshi Tanaka
 

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
 
2016 mobile trends
2016 mobile trends2016 mobile trends
2016 mobile trendsNigel Grace
 
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 profitChristina Hsu
 
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 2015Allan Isfan
 
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 & StrategyAmanda McConnell
 
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...West Muse
 
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 Judd Wheeler
 
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 TechnologyJudd Wheeler
 
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...Kristaps Skutelis
 
VIRTUAL REALITY. TRENDS AND APPLICATIONS
VIRTUAL REALITY. TRENDS AND APPLICATIONSVIRTUAL REALITY. TRENDS AND APPLICATIONS
VIRTUAL REALITY. TRENDS AND APPLICATIONSIsidro Navarro
 
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 + MobextHavas Media
 
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 Havas Media
 
10 latest trends of mobile technology
10 latest trends of mobile technology10 latest trends of mobile technology
10 latest trends of mobile technologyFaizan Subzwari
 
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...Mike Merrill
 
Web 3.0 The Semantic Web
Web 3.0 The Semantic WebWeb 3.0 The Semantic Web
Web 3.0 The Semantic WebHatem Mahmoud
 

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 Bring Real-Time Communications to the Web

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
 
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 AppsCisco DevNet
 
Introduction to WebRTC
Introduction to WebRTCIntroduction to WebRTC
Introduction to WebRTCArjun Varma
 
[workshop] The Revolutionary WebRTC
[workshop] The Revolutionary WebRTC[workshop] The Revolutionary WebRTC
[workshop] The Revolutionary WebRTCGiacomo Vacca
 
Meet qt intro
Meet qt introMeet qt intro
Meet qt introISBVN
 
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
 
Introduction to WebRTC
Introduction to WebRTCIntroduction to WebRTC
Introduction to WebRTCArt Matsak
 
minor-project-1.ppt
minor-project-1.pptminor-project-1.ppt
minor-project-1.pptthinkonce1
 
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...Brian Pulito
 
WebRTC Overview
WebRTC OverviewWebRTC Overview
WebRTC OverviewArin Sime
 
Getting Started with WebRTC
Getting Started with WebRTCGetting Started with WebRTC
Getting Started with WebRTCChad Hart
 

Similar to WebRTC Bring Real-Time Communications 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

Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

WebRTC Bring Real-Time Communications 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