SlideShare a Scribd company logo
1
A real-time communication between the browsers.
Presented by,
B . SrinivasaTeja,
11G25A0501.
What’s WebRTC?
“ WebRTC is a new front in the long war for an open and
unencumbered web.
— Brendan Eich, inventor of JavaScript
2
• Web Real-Time Communication (WebRTC) is an upcoming standard that aims to enable
real-time communication among Web browsers in a peer-to-peer fashion.
• WebRTC project (opensource) aims to allow browsers to natively support interactive peer
to peer communications and real time data collaboration.
• Provide state of art audio/video communication stack in your browser.
What’s WebRTC?
3
Earlier Efforts
• Many web services already use RTC, but need downloads, native apps or
plugins. These includes Skype, Facebook (uses Skype) and Google Hangouts
(uses Google Talk plugin).
• Downloading, installing and updating plugins can be complex, error prone
and annoying.
• Plugins can be difficult to deploy, debug, troubleshoot, test and
maintain—and may require licensing and integration with complex,
expensive technology.
4
What does it change?
• No licenses or other fees.
• Integration via simple, standardized Web APIs.
• No Proprietary plugins.
• No Security issues.
• No downloads, no installation.
• Just surf to the right address!
5
Aims of WebRTC
• State of art audio/video media communication stack in your browser.
• Seamless person-to-person communication.
• Specification to achieve inter-operability among Web browsers.
• To create a common platform for real-time communication- so that your PC,
your Phone, your TV can all communicate.
• Low cost and highly efficient communication solution to enterprises.
6
WebRTC Support :
• WebRTC coming to almost all desktop web browsers by EOY -2012.
1. Chrome 21
2. Opera 12
3. Firefox 17
4. IE (via Chrome Frame).
• Mobile browser support also will follow.
• Native C++ versions ofWebRTC stack also available.
7
Architecture
8
• At startup, browsers do not know each other.
• JavaScript mediates the setup process through server.
• Media flows through the shortest possible path for latency.
Architecture
9
Key Features :
• Media Streams :- access to the users camera and mic.
• Peer Connection :- easy audio/video calls.
• Data Channels :- P2P application data transfer.
10
11
WebRTC API Stack View
DataChannel API
PeerConnection API
WebRTC APP
DataChannel API
PeerConnection API
WebRTC APPDTLS
SRTP/SCTP
ICE
UDP
Media Streams :
• Represents a media source that is containing 1 or more synchronized media
stream tracks.
• Media stream can be converted to an object URL, and passed to </video> element.
• Use the getUserMedia api to get a media stream for the webcam/mic.
http://webcamtoy.com/app/ --- Uses Canvas andWebGL.
http://bouncyballs.org/ --- Uses Canvas andWebGL.
http://neave.com/tic-tac-toe/ -- Uses Canvas.
12
WebRTC Media Engine
13
getUserMedia
• A MediaStream is an abstract representation of an actual data stream of audio
or video.
• Serves as a handle for managing actions on the media stream.
• A MediaStream can be extended to represent a stream that either comes from
(remote stream) or is sent to (local stream) a remote node.
• A LocalMediaStream represents a media stream from a local media-capture
device (such as a webcam or microphone). 14
15
getUserMedia
• The MediaStream represents synchronized streams of media. For example, a
stream taken from camera and microphone input has synchronized video and
audio tracks.
• The getUserMedia() method takes three parameters:
• A constraints object.
• A success callback which, if called, is passed a LocalMediaStream.
• A failure callback which, if called, is passed an error object.
• In Chrome, the URL.createObjectURL () method converts a LocalMediaStream to a
Blob URL which can be set as the src of a video element.
<video id="sourcevid" autoplay></video>
<script>
var video = document.getElementById('sourcevid');
navigator.getUserMedia('video', success, error);
function success(stream) {
video.src = window.URL.createObjectURL(stream);
}
</script>
16
getUserMedia
17
WebRTC App. Need TO
• Get streaming audio, video or other data.
• Get network information such as IP address and port, and exchange this
with other WebRTC clients (known as peers).
• Coordinate signaling communication to report errors and initiate or close
sessions.
• Exchange information about media and client capability, such as resolution
and codecs. 18
RTCPeerConnection
• API for establishing Audio/Video calls (“sessions”).
• Built-in :-
1. Peer-to-Peer
2. Codec control
3. Encryption
4. Bandwidth Management.
5 . C o m m u n i c a t i o n s a r e c o o r d i n a t e d v i a a s i g n a l i n g c h a n n e l p r o v i d e d b y s c r i p t i n g c o d e i n t h e p a g e v i a t h e W e b s e r v e r — f o r i n s t a n c e , u s i n g X M L H t t p R e q u e s t o r W e b S o c k e t .
19
In the real world, WebRTC needs servers, so the following can happen:
• Users discover each other and exchange 'real world' details such as names.
• WebRTC client applications (peers) exchange network information.
• Peers exchange data about media such as video format and resolution.
• WebRTC client applications traverse NAT gateways and firewalls.
20
RTCPeerConnection
21
RTC Peer Connection
How peers connect?
22
App Engine Example :
23
https://apprtc.appspot.com
Setting Up a Session :
• To start a session a client needs –
1. Local Session Description (describes the configuration of a local side)
2. Remote Session Description (describes the configuration of remote side)
3. RemoteTransport Candidates (describes how to connect to remote side)
These parameters are exchanged via signalling and communicated to the browser
via PeerConnection api.
The initial session description sent by the caller is called an “Offer”, & the response
from the callee is called an “Answer”.
24
PeerConnection SetUp api :
25
26
Signaling
• Mechanism to coordinate communication and to send control messages.
• Signaling methods and protocols are not specified by WebRTC but by application
developer.
• Signaling is used to exchange three types of information :
• Session control messages : to initialize or close communication and report
errors.
• Network configuration : what's my computer's IP address and port?
• Media capabilities : what codecs and resolutions can be handled by my
browser and the browser it wants to communicate with?
27
• The original idea to exchange Session Description information was in the form
of Session Description Protocol (SDP) “blobs”.
• This approach had several shortcomings some of which would be difficult to
address.
• IETF is standardizing the JavaScript Session Establishment Protocol (JSEP).
• JSEP provides the interface an application needs to deal with the negotiated
local and remote session descriptions.
• The JSEP approach leaves the responsibility for driving the signaling state
machine entirely to the application.
• XMLHttpRequest works great for sending request , but receiving them isn’t as
easy.
• App Engine’s Channel API provides the server -> client message path. 28
Signaling
App Engine Channel API
• Establishing a channel.
29
App Engine Channel API
• Sending a message.
30
NAT Traversal
• Suffice to say that the STUN protocol and its extension TURN are
used by the ICE framework to enable RTCPeerConnection to cope
with NAT traversal.
• Initially, ICE tries to connect peers directly, with the lowest
possible latency, via UDP. In this process, STUN servers have a
single task: to enable a peer behind a NAT to find out its public
address and port.
31
32
NAT Traversal
• If UDP fails, ICE tries TCP: first HTTP, then HTTPS.
• If direct connection fails—in particular, because of enterprise NAT traversal and
firewalls—ICE uses an intermediary (relay) TURN server.
• In other words, ICE will first use STUN with UDP to directly connect peers and, if that
fails, will fall back to a TURN relay server.
• The expression 'finding candidates' refers to the process of finding network
interfaces and ports.
33
NAT Traversal
34
NAT Traversal
RTCDataChannel
• As well as audio and video, WebRTC supports real-time communication for
other types of data.
• The RTCDataChannel API will enable peer-to-peer exchange of arbitrary data,
with low latency and high throughput.
• The API has several features to make the most of RTCPeerConnection and
enable powerful and flexible peer-to-peer communication.
35
• Stream Control Transmission Protocol (SCTP) encapsulated in DTLS is used to
handle DataChannel Data.
• DataChannel API is bidirectional, which means that each DataChannel bundles
an incoming and an outgoing SCTP stream.
• Encapsulating "SCTP over DTLS over ICE over UDP" provides a NAT traversal
solution together with confidentiality, source authentication, and integrity-
protected transfers.
36
RTCDataChannel
Security
There are several ways a real-time communication application or plugin might compromise
security. For example:
• Unencrypted media or data might be intercepted en route between browsers, or
between a browser and a server.
• An application might record and distribute video or audio without the user knowing.
• Malware or viruses might be installed alongside an apparently innocuous plugin or
application.
37
WebRTC has several features to avoid these problems:
• WebRTC implementations use secure protocols such as DTLS and SRTP.
• Encryption is mandatory for all WebRTC components, including signaling
mechanisms.
• WebRTC is not a plugin: its components run in the browser sandbox and not in a
separate process, components do not require separate installation, and are
updated whenever the browser is updated.
• Camera and microphone access must be granted explicitly and, when the camera or
microphone are running, this is clearly shown by the user interface.
38
Security
Current Limitations
• Cloud Infrastructure – A server is required by WebRTC to complete four tasks: User
discovery, Signalling and NAT/firewall traversal.
• Native Applications – WebRTC enables real-time communication between web browsers.
It is not a software development kit that can be used in native iOS or Android
applications or in native desktop applications.
• Multiparty Conferencing – WebRTC is peer-to-peer by nature which allows WebRTC to be
extremely scalable, but it is very inefficient when setting up communications between
more than two end users.
• Recording – WebRTC does not support recording as of now.
39
Conclusion
• The APIs and standards of WebRTC can democratize and decentralize tools
for content creation and communication — for telephony, gaming, video
production, music making, news gathering and many other applications.
• WebRTC will have great impact on open web and interoperable browser
technologies including the existing enterprise solutions.
40
References
• Salvatore Loreto, Simon Pietro Romano (2012) ‘Real-Time Communications in the
Web’
- IEEE paper October, 2012
• IETF.org
• WebRTC book by Alan B. Johnston and Daniel C. Burnett : webrtcbook.com .
• Video of Justin Uberti's WebRTC session at Google I/O, 27 June 2012.
• webrtc.org
• Google Developers Google Talk documentation, which gives more information
about NAT traversal, STUN, relay servers and candidate gathering.
• WebPlatform.org
(http://docs.webplatform.org/wiki/concepts/internet_and_web/webrtc) 41
42
43

More Related Content

What's hot

Angular
AngularAngular
Angular
LearningTech
 
.Net Core - not your daddy's dotnet
.Net Core - not your daddy's dotnet.Net Core - not your daddy's dotnet
.Net Core - not your daddy's dotnet
Rick van den Bosch
 
Puppeteer can automate that! - AmsterdamJS
Puppeteer can automate that! - AmsterdamJSPuppeteer can automate that! - AmsterdamJS
Puppeteer can automate that! - AmsterdamJS
Önder Ceylan
 
Spring Security 5
Spring Security 5Spring Security 5
Spring Security 5
Jesus Perez Franco
 
OpenAPI and gRPC Side by-Side
OpenAPI and gRPC Side by-SideOpenAPI and gRPC Side by-Side
OpenAPI and gRPC Side by-Side
Tim Burks
 
Docker-Dasar.pptx
Docker-Dasar.pptxDocker-Dasar.pptx
Docker-Dasar.pptx
SamsulAlam41
 
Introduction to ASP.NET Core
Introduction to ASP.NET CoreIntroduction to ASP.NET Core
Introduction to ASP.NET Core
Avanade Nederland
 
Angular 8
Angular 8 Angular 8
Angular 8
Sunil OS
 
Rest in flask
Rest in flaskRest in flask
Rest in flask
Hamid Feizabadi
 
.Net Core
.Net Core.Net Core
.Net Core
Bertrand Le Roy
 
Nodejs presentation
Nodejs presentationNodejs presentation
Nodejs presentation
Arvind Devaraj
 
Introduction to Istio on Kubernetes
Introduction to Istio on KubernetesIntroduction to Istio on Kubernetes
Introduction to Istio on Kubernetes
Jonh Wendell
 
Reaching the multimedia web from embedded platforms with WPEWebkit
Reaching the multimedia web from embedded platforms with WPEWebkitReaching the multimedia web from embedded platforms with WPEWebkit
Reaching the multimedia web from embedded platforms with WPEWebkit
Igalia
 
introduction to Vue.js 3
introduction to Vue.js 3 introduction to Vue.js 3
introduction to Vue.js 3
ArezooKmn
 
How Web Browsers Work
How Web Browsers WorkHow Web Browsers Work
How Web Browsers Work
military
 
Qt State Machine Framework
Qt State Machine FrameworkQt State Machine Framework
Qt State Machine Framework
account inactive
 
Asp.Net Core MVC , Razor page , Entity Framework Core
Asp.Net Core MVC , Razor page , Entity Framework CoreAsp.Net Core MVC , Razor page , Entity Framework Core
Asp.Net Core MVC , Razor page , Entity Framework Core
mohamed elshafey
 
Model view controller (mvc)
Model view controller (mvc)Model view controller (mvc)
Model view controller (mvc)
M Ahsan Khan
 
Angular Introduction By Surekha Gadkari
Angular Introduction By Surekha GadkariAngular Introduction By Surekha Gadkari
Angular Introduction By Surekha Gadkari
Surekha Gadkari
 
Going realtime with Socket.IO
Going realtime with Socket.IOGoing realtime with Socket.IO
Going realtime with Socket.IO
Christian Joudrey
 

What's hot (20)

Angular
AngularAngular
Angular
 
.Net Core - not your daddy's dotnet
.Net Core - not your daddy's dotnet.Net Core - not your daddy's dotnet
.Net Core - not your daddy's dotnet
 
Puppeteer can automate that! - AmsterdamJS
Puppeteer can automate that! - AmsterdamJSPuppeteer can automate that! - AmsterdamJS
Puppeteer can automate that! - AmsterdamJS
 
Spring Security 5
Spring Security 5Spring Security 5
Spring Security 5
 
OpenAPI and gRPC Side by-Side
OpenAPI and gRPC Side by-SideOpenAPI and gRPC Side by-Side
OpenAPI and gRPC Side by-Side
 
Docker-Dasar.pptx
Docker-Dasar.pptxDocker-Dasar.pptx
Docker-Dasar.pptx
 
Introduction to ASP.NET Core
Introduction to ASP.NET CoreIntroduction to ASP.NET Core
Introduction to ASP.NET Core
 
Angular 8
Angular 8 Angular 8
Angular 8
 
Rest in flask
Rest in flaskRest in flask
Rest in flask
 
.Net Core
.Net Core.Net Core
.Net Core
 
Nodejs presentation
Nodejs presentationNodejs presentation
Nodejs presentation
 
Introduction to Istio on Kubernetes
Introduction to Istio on KubernetesIntroduction to Istio on Kubernetes
Introduction to Istio on Kubernetes
 
Reaching the multimedia web from embedded platforms with WPEWebkit
Reaching the multimedia web from embedded platforms with WPEWebkitReaching the multimedia web from embedded platforms with WPEWebkit
Reaching the multimedia web from embedded platforms with WPEWebkit
 
introduction to Vue.js 3
introduction to Vue.js 3 introduction to Vue.js 3
introduction to Vue.js 3
 
How Web Browsers Work
How Web Browsers WorkHow Web Browsers Work
How Web Browsers Work
 
Qt State Machine Framework
Qt State Machine FrameworkQt State Machine Framework
Qt State Machine Framework
 
Asp.Net Core MVC , Razor page , Entity Framework Core
Asp.Net Core MVC , Razor page , Entity Framework CoreAsp.Net Core MVC , Razor page , Entity Framework Core
Asp.Net Core MVC , Razor page , Entity Framework Core
 
Model view controller (mvc)
Model view controller (mvc)Model view controller (mvc)
Model view controller (mvc)
 
Angular Introduction By Surekha Gadkari
Angular Introduction By Surekha GadkariAngular Introduction By Surekha Gadkari
Angular Introduction By Surekha Gadkari
 
Going realtime with Socket.IO
Going realtime with Socket.IOGoing realtime with Socket.IO
Going realtime with Socket.IO
 

Viewers also liked

WebRTC Audio Codec: Opus and processing requirements
WebRTC Audio Codec: Opus and processing requirementsWebRTC Audio Codec: Opus and processing requirements
WebRTC Audio Codec: Opus and processing requirements
Tsahi Levent-levi
 
Introduction to WebRTC
Introduction to WebRTCIntroduction to WebRTC
Introduction to WebRTC
Patrick Cason
 
clickstream analysis
 clickstream analysis clickstream analysis
clickstream analysis
ERSHUBHAM TIWARI
 
18 Data Streams
18 Data Streams18 Data Streams
18 Data Streams
Pier Luca Lanzi
 
Document clustering for forensic analysis
Document clustering for forensic analysisDocument clustering for forensic analysis
Document clustering for forensic analysis
srinivasa teja
 
Data Mining: Mining stream time series and sequence data
Data Mining: Mining stream time series and sequence dataData Mining: Mining stream time series and sequence data
Data Mining: Mining stream time series and sequence data
DataminingTools Inc
 
Web Real-time Communications
Web Real-time CommunicationsWeb Real-time Communications
Web Real-time Communications
Alexei Skachykhin
 

Viewers also liked (7)

WebRTC Audio Codec: Opus and processing requirements
WebRTC Audio Codec: Opus and processing requirementsWebRTC Audio Codec: Opus and processing requirements
WebRTC Audio Codec: Opus and processing requirements
 
Introduction to WebRTC
Introduction to WebRTCIntroduction to WebRTC
Introduction to WebRTC
 
clickstream analysis
 clickstream analysis clickstream analysis
clickstream analysis
 
18 Data Streams
18 Data Streams18 Data Streams
18 Data Streams
 
Document clustering for forensic analysis
Document clustering for forensic analysisDocument clustering for forensic analysis
Document clustering for forensic analysis
 
Data Mining: Mining stream time series and sequence data
Data Mining: Mining stream time series and sequence dataData Mining: Mining stream time series and sequence data
Data Mining: Mining stream time series and sequence data
 
Web Real-time Communications
Web Real-time CommunicationsWeb Real-time Communications
Web Real-time Communications
 

Similar to WebRTC Seminar Report

WebRTC
WebRTCWebRTC
WebRTC
allanh0526
 
Architecting Low Latency Applications Alberto Gonzalez
Architecting Low Latency Applications Alberto GonzalezArchitecting Low Latency Applications Alberto Gonzalez
Architecting Low Latency Applications Alberto Gonzalez
Alberto González Trastoy
 
WebRTC in action
WebRTC in actionWebRTC in action
WebRTC in action
Tho Q Luong Luong
 
WebRTC. Yet Another Overview, for IT Technicians.
WebRTC. Yet Another Overview, for IT Technicians.WebRTC. Yet Another Overview, for IT Technicians.
WebRTC. Yet Another Overview, for IT Technicians.
Vladimir Beloborodov
 
[Wroclaw #4] WebRTC & security: 101
[Wroclaw #4] WebRTC & security: 101[Wroclaw #4] WebRTC & security: 101
[Wroclaw #4] WebRTC & security: 101
OWASP
 
WebRTC DataChannels demystified
WebRTC DataChannels demystifiedWebRTC DataChannels demystified
WebRTC DataChannels demystified
Victor Pascual Ávila
 
APIs at the Edge
APIs at the EdgeAPIs at the Edge
APIs at the Edge
Red Hat
 
DevCon 5 (July 2013) - WebSockets
DevCon 5 (July 2013) - WebSocketsDevCon 5 (July 2013) - WebSockets
DevCon 5 (July 2013) - WebSockets
Crocodile WebRTC SDK and Cloud Signalling Network
 
DevCon5 (July 2014) - Intro to WebRTC
DevCon5 (July 2014) - Intro to WebRTCDevCon5 (July 2014) - Intro to WebRTC
DevCon5 (July 2014) - Intro to WebRTC
Crocodile WebRTC SDK and Cloud Signalling Network
 
What is WebRTC and How does it work?
What is WebRTC and How does it work?What is WebRTC and How does it work?
What is WebRTC and How does it work?
SandipPatel533958
 
minor-project-1.ppt
minor-project-1.pptminor-project-1.ppt
minor-project-1.ppt
thinkonce1
 
WebRTC ... GWT & in-browser computation
WebRTC ... GWT & in-browser computationWebRTC ... GWT & in-browser computation
WebRTC ... GWT & in-browser computation
JooinK
 
WebRTC - Bridging Web and SIP Worlds
WebRTC - Bridging Web and SIP WorldsWebRTC - Bridging Web and SIP Worlds
WebRTC - Bridging Web and SIP Worlds
IMTC
 
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 in Real world
Webrtc in Real world Webrtc in Real world
Webrtc in Real world
Hanumesh Palla
 
Getting Started with WebRTC
Getting Started with WebRTCGetting Started with WebRTC
Getting Started with WebRTC
Chad Hart
 
Introduction to SignalR
Introduction to SignalRIntroduction to SignalR
Introduction to SignalR
University of Hawai‘i at Mānoa
 
It nv51 instructor_ppt_ch9
It nv51 instructor_ppt_ch9It nv51 instructor_ppt_ch9
It nv51 instructor_ppt_ch9
newbie2019
 
Html5 RTC - 1
Html5 RTC  - 1Html5 RTC  - 1
Html5 RTC - 1
George Orhewere
 

Similar to WebRTC Seminar Report (20)

WebRTC
WebRTCWebRTC
WebRTC
 
Architecting Low Latency Applications Alberto Gonzalez
Architecting Low Latency Applications Alberto GonzalezArchitecting Low Latency Applications Alberto Gonzalez
Architecting Low Latency Applications Alberto Gonzalez
 
WebRCT
WebRCTWebRCT
WebRCT
 
WebRTC in action
WebRTC in actionWebRTC in action
WebRTC in action
 
WebRTC. Yet Another Overview, for IT Technicians.
WebRTC. Yet Another Overview, for IT Technicians.WebRTC. Yet Another Overview, for IT Technicians.
WebRTC. Yet Another Overview, for IT Technicians.
 
[Wroclaw #4] WebRTC & security: 101
[Wroclaw #4] WebRTC & security: 101[Wroclaw #4] WebRTC & security: 101
[Wroclaw #4] WebRTC & security: 101
 
WebRTC DataChannels demystified
WebRTC DataChannels demystifiedWebRTC DataChannels demystified
WebRTC DataChannels demystified
 
APIs at the Edge
APIs at the EdgeAPIs at the Edge
APIs at the Edge
 
DevCon 5 (July 2013) - WebSockets
DevCon 5 (July 2013) - WebSocketsDevCon 5 (July 2013) - WebSockets
DevCon 5 (July 2013) - WebSockets
 
DevCon5 (July 2014) - Intro to WebRTC
DevCon5 (July 2014) - Intro to WebRTCDevCon5 (July 2014) - Intro to WebRTC
DevCon5 (July 2014) - Intro to WebRTC
 
What is WebRTC and How does it work?
What is WebRTC and How does it work?What is WebRTC and How does it work?
What is WebRTC and How does it work?
 
minor-project-1.ppt
minor-project-1.pptminor-project-1.ppt
minor-project-1.ppt
 
WebRTC ... GWT & in-browser computation
WebRTC ... GWT & in-browser computationWebRTC ... GWT & in-browser computation
WebRTC ... GWT & in-browser computation
 
WebRTC - Bridging Web and SIP Worlds
WebRTC - Bridging Web and SIP WorldsWebRTC - Bridging Web and SIP Worlds
WebRTC - Bridging Web and SIP Worlds
 
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 in Real world
Webrtc in Real world Webrtc in Real world
Webrtc in Real world
 
Getting Started with WebRTC
Getting Started with WebRTCGetting Started with WebRTC
Getting Started with WebRTC
 
Introduction to SignalR
Introduction to SignalRIntroduction to SignalR
Introduction to SignalR
 
It nv51 instructor_ppt_ch9
It nv51 instructor_ppt_ch9It nv51 instructor_ppt_ch9
It nv51 instructor_ppt_ch9
 
Html5 RTC - 1
Html5 RTC  - 1Html5 RTC  - 1
Html5 RTC - 1
 

Recently uploaded

Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
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
Cheryl Hung
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
"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
Fwdays
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
Abida Shariff
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
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...
Product School
 
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...
Product School
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 

Recently uploaded (20)

Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
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
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
"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
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
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...
 
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...
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 

WebRTC Seminar Report

  • 1. 1 A real-time communication between the browsers. Presented by, B . SrinivasaTeja, 11G25A0501.
  • 2. What’s WebRTC? “ WebRTC is a new front in the long war for an open and unencumbered web. — Brendan Eich, inventor of JavaScript 2
  • 3. • Web Real-Time Communication (WebRTC) is an upcoming standard that aims to enable real-time communication among Web browsers in a peer-to-peer fashion. • WebRTC project (opensource) aims to allow browsers to natively support interactive peer to peer communications and real time data collaboration. • Provide state of art audio/video communication stack in your browser. What’s WebRTC? 3
  • 4. Earlier Efforts • Many web services already use RTC, but need downloads, native apps or plugins. These includes Skype, Facebook (uses Skype) and Google Hangouts (uses Google Talk plugin). • Downloading, installing and updating plugins can be complex, error prone and annoying. • Plugins can be difficult to deploy, debug, troubleshoot, test and maintain—and may require licensing and integration with complex, expensive technology. 4
  • 5. What does it change? • No licenses or other fees. • Integration via simple, standardized Web APIs. • No Proprietary plugins. • No Security issues. • No downloads, no installation. • Just surf to the right address! 5
  • 6. Aims of WebRTC • State of art audio/video media communication stack in your browser. • Seamless person-to-person communication. • Specification to achieve inter-operability among Web browsers. • To create a common platform for real-time communication- so that your PC, your Phone, your TV can all communicate. • Low cost and highly efficient communication solution to enterprises. 6
  • 7. WebRTC Support : • WebRTC coming to almost all desktop web browsers by EOY -2012. 1. Chrome 21 2. Opera 12 3. Firefox 17 4. IE (via Chrome Frame). • Mobile browser support also will follow. • Native C++ versions ofWebRTC stack also available. 7
  • 9. • At startup, browsers do not know each other. • JavaScript mediates the setup process through server. • Media flows through the shortest possible path for latency. Architecture 9
  • 10. Key Features : • Media Streams :- access to the users camera and mic. • Peer Connection :- easy audio/video calls. • Data Channels :- P2P application data transfer. 10
  • 11. 11 WebRTC API Stack View DataChannel API PeerConnection API WebRTC APP DataChannel API PeerConnection API WebRTC APPDTLS SRTP/SCTP ICE UDP
  • 12. Media Streams : • Represents a media source that is containing 1 or more synchronized media stream tracks. • Media stream can be converted to an object URL, and passed to </video> element. • Use the getUserMedia api to get a media stream for the webcam/mic. http://webcamtoy.com/app/ --- Uses Canvas andWebGL. http://bouncyballs.org/ --- Uses Canvas andWebGL. http://neave.com/tic-tac-toe/ -- Uses Canvas. 12
  • 14. getUserMedia • A MediaStream is an abstract representation of an actual data stream of audio or video. • Serves as a handle for managing actions on the media stream. • A MediaStream can be extended to represent a stream that either comes from (remote stream) or is sent to (local stream) a remote node. • A LocalMediaStream represents a media stream from a local media-capture device (such as a webcam or microphone). 14
  • 15. 15 getUserMedia • The MediaStream represents synchronized streams of media. For example, a stream taken from camera and microphone input has synchronized video and audio tracks. • The getUserMedia() method takes three parameters: • A constraints object. • A success callback which, if called, is passed a LocalMediaStream. • A failure callback which, if called, is passed an error object. • In Chrome, the URL.createObjectURL () method converts a LocalMediaStream to a Blob URL which can be set as the src of a video element.
  • 16. <video id="sourcevid" autoplay></video> <script> var video = document.getElementById('sourcevid'); navigator.getUserMedia('video', success, error); function success(stream) { video.src = window.URL.createObjectURL(stream); } </script> 16 getUserMedia
  • 17. 17
  • 18. WebRTC App. Need TO • Get streaming audio, video or other data. • Get network information such as IP address and port, and exchange this with other WebRTC clients (known as peers). • Coordinate signaling communication to report errors and initiate or close sessions. • Exchange information about media and client capability, such as resolution and codecs. 18
  • 19. RTCPeerConnection • API for establishing Audio/Video calls (“sessions”). • Built-in :- 1. Peer-to-Peer 2. Codec control 3. Encryption 4. Bandwidth Management. 5 . C o m m u n i c a t i o n s a r e c o o r d i n a t e d v i a a s i g n a l i n g c h a n n e l p r o v i d e d b y s c r i p t i n g c o d e i n t h e p a g e v i a t h e W e b s e r v e r — f o r i n s t a n c e , u s i n g X M L H t t p R e q u e s t o r W e b S o c k e t . 19
  • 20. In the real world, WebRTC needs servers, so the following can happen: • Users discover each other and exchange 'real world' details such as names. • WebRTC client applications (peers) exchange network information. • Peers exchange data about media such as video format and resolution. • WebRTC client applications traverse NAT gateways and firewalls. 20 RTCPeerConnection
  • 23. App Engine Example : 23 https://apprtc.appspot.com
  • 24. Setting Up a Session : • To start a session a client needs – 1. Local Session Description (describes the configuration of a local side) 2. Remote Session Description (describes the configuration of remote side) 3. RemoteTransport Candidates (describes how to connect to remote side) These parameters are exchanged via signalling and communicated to the browser via PeerConnection api. The initial session description sent by the caller is called an “Offer”, & the response from the callee is called an “Answer”. 24
  • 26. 26
  • 27. Signaling • Mechanism to coordinate communication and to send control messages. • Signaling methods and protocols are not specified by WebRTC but by application developer. • Signaling is used to exchange three types of information : • Session control messages : to initialize or close communication and report errors. • Network configuration : what's my computer's IP address and port? • Media capabilities : what codecs and resolutions can be handled by my browser and the browser it wants to communicate with? 27
  • 28. • The original idea to exchange Session Description information was in the form of Session Description Protocol (SDP) “blobs”. • This approach had several shortcomings some of which would be difficult to address. • IETF is standardizing the JavaScript Session Establishment Protocol (JSEP). • JSEP provides the interface an application needs to deal with the negotiated local and remote session descriptions. • The JSEP approach leaves the responsibility for driving the signaling state machine entirely to the application. • XMLHttpRequest works great for sending request , but receiving them isn’t as easy. • App Engine’s Channel API provides the server -> client message path. 28 Signaling
  • 29. App Engine Channel API • Establishing a channel. 29
  • 30. App Engine Channel API • Sending a message. 30
  • 31. NAT Traversal • Suffice to say that the STUN protocol and its extension TURN are used by the ICE framework to enable RTCPeerConnection to cope with NAT traversal. • Initially, ICE tries to connect peers directly, with the lowest possible latency, via UDP. In this process, STUN servers have a single task: to enable a peer behind a NAT to find out its public address and port. 31
  • 33. • If UDP fails, ICE tries TCP: first HTTP, then HTTPS. • If direct connection fails—in particular, because of enterprise NAT traversal and firewalls—ICE uses an intermediary (relay) TURN server. • In other words, ICE will first use STUN with UDP to directly connect peers and, if that fails, will fall back to a TURN relay server. • The expression 'finding candidates' refers to the process of finding network interfaces and ports. 33 NAT Traversal
  • 35. RTCDataChannel • As well as audio and video, WebRTC supports real-time communication for other types of data. • The RTCDataChannel API will enable peer-to-peer exchange of arbitrary data, with low latency and high throughput. • The API has several features to make the most of RTCPeerConnection and enable powerful and flexible peer-to-peer communication. 35
  • 36. • Stream Control Transmission Protocol (SCTP) encapsulated in DTLS is used to handle DataChannel Data. • DataChannel API is bidirectional, which means that each DataChannel bundles an incoming and an outgoing SCTP stream. • Encapsulating "SCTP over DTLS over ICE over UDP" provides a NAT traversal solution together with confidentiality, source authentication, and integrity- protected transfers. 36 RTCDataChannel
  • 37. Security There are several ways a real-time communication application or plugin might compromise security. For example: • Unencrypted media or data might be intercepted en route between browsers, or between a browser and a server. • An application might record and distribute video or audio without the user knowing. • Malware or viruses might be installed alongside an apparently innocuous plugin or application. 37
  • 38. WebRTC has several features to avoid these problems: • WebRTC implementations use secure protocols such as DTLS and SRTP. • Encryption is mandatory for all WebRTC components, including signaling mechanisms. • WebRTC is not a plugin: its components run in the browser sandbox and not in a separate process, components do not require separate installation, and are updated whenever the browser is updated. • Camera and microphone access must be granted explicitly and, when the camera or microphone are running, this is clearly shown by the user interface. 38 Security
  • 39. Current Limitations • Cloud Infrastructure – A server is required by WebRTC to complete four tasks: User discovery, Signalling and NAT/firewall traversal. • Native Applications – WebRTC enables real-time communication between web browsers. It is not a software development kit that can be used in native iOS or Android applications or in native desktop applications. • Multiparty Conferencing – WebRTC is peer-to-peer by nature which allows WebRTC to be extremely scalable, but it is very inefficient when setting up communications between more than two end users. • Recording – WebRTC does not support recording as of now. 39
  • 40. Conclusion • The APIs and standards of WebRTC can democratize and decentralize tools for content creation and communication — for telephony, gaming, video production, music making, news gathering and many other applications. • WebRTC will have great impact on open web and interoperable browser technologies including the existing enterprise solutions. 40
  • 41. References • Salvatore Loreto, Simon Pietro Romano (2012) ‘Real-Time Communications in the Web’ - IEEE paper October, 2012 • IETF.org • WebRTC book by Alan B. Johnston and Daniel C. Burnett : webrtcbook.com . • Video of Justin Uberti's WebRTC session at Google I/O, 27 June 2012. • webrtc.org • Google Developers Google Talk documentation, which gives more information about NAT traversal, STUN, relay servers and candidate gathering. • WebPlatform.org (http://docs.webplatform.org/wiki/concepts/internet_and_web/webrtc) 41
  • 42. 42
  • 43. 43