Intro to
Multimedia Lab, FAU
What is WebRTC?
It is a free, open project that enables web browsers with Real-Time Communications (RTC) capabilities.
Uses Javascript APIs and HTML5. It is supported by Google, Mozilla and Opera. It aspires to create a common platform for RTC: PC, phone, TV
WebRTC Support
WebRTC coming to almost all desktop browsers by the end of 2012.
Mobile support will follow. Native C++ libraries are available.
Key Features
MediaStreams access to users camera and mic
PeerConnection easy audio/video calls DataChannels p2p application data transfer Currently only MediaStreams and PeerConnection have been implemented.
MediaStreams
A MediaStream represents a media source.
Can be converted to an object URL, and passed to a <video> element. Use the getUserMedia API to get a MediaStream for the webcam/mic (prompts for user consent).
PeerConnection
API for establishing audio/video calls.
Built-in:
Peer-to-peer Codec control Encryption Bandwidth Mannagement
Chrome Flag
PeerConnection is hidden under a flag in Chrome.
Websockets
WebRTC does not specify signaling methods and protocols.
Websockets can be used for signaling.
It provides bi-directional communication channels over a single TCP connection. Supported on Chrome, Firefox, Safari, and IE.
Alternatives: SIP, XMPP, XMLHttpRequest with Google Channel API
Demos
Synced video.
One to many video.