Real-time communication with WebRTC: Google I/O 2013

Google for Developers · 627K views · 2013 · 44:17

Open on YouTube

Web developmentNetworking & internet infrastructuretalkdated

Why Stack Overflow recommends it

Stack Overflow users link it when they need an overview of how WebRTC works, especially signaling, STUN/TURN servers and peer-to-peer versus MCU topologies.

Recommended by 2 people across 1 different months, 2012 to 2019.

What it is

A Google I/O 2013 session by Justin Uberti and Sam Dutton introducing WebRTC, the open standard for plugin-free realtime video, audio and data in the browser. It covers MediaStream/getUserMedia, RTCPeerConnection, RTCDataChannel, signaling, STUN and TURN, security, and server architectures, with code examples and live demos.

What people said

Recommends Sam Dutton · 2013-09 · Stack Overflow · on “WebRTC vs WebSocket: If WebRTC can do Video, Audio, and Data, why do I need WebSocket?”

WebRTC is designed for high-performance, high quality communication of video, audio and arbitrary data. In other words, for apps exactly like what you describe. WebRTC apps need a service via which they can exchange network and media metadata, a process known as signaling. However, once signaling has taken place, video/audio/data is streamed directly between clients, avoiding the performance cost of streaming via an intermediary server. WebSocket on the other hand is designed for bi-directional communication between client and server. It is possible to stream audio and video over WebSocket (see here [LINK] for example), but the technology and APIs are not inherently designed for efficient, r

Recommends Mikael Holmgren · 2013-09 · Stack Overflow · on “Exchange data between 2 user at the same url”

Cubeslam is a great example of webRTC. It actually has a small note about the technique and informs that they are using webRTC. webRTC uses peer to peer technique so the stream from your camera never reaches a server. However, to set up the stream you need to do some signaling, and that signaling will be sent via a server. Example of signaling: Sending SDP messages (Session Description Protocol) with information of i.e. what will be sent in the stream. ICE – Candidates is sent in order to find a good path between the two peers. Making sure there’s no firewalls in the way. Discovery. The unique textstring you see in the URL probably identifies the session and makes it possible for the server

Cites Todd Horst · 2012-10 · Stack Overflow · on “Webrtc no video when users are on different network”

So I have a website set up. With a clienta page and a clientb page. This is basically a split version of this site: [LINK] I am using signalr (websockets) to exchange information between the clients. When a user opens up both cleinta and b on the same computer it works fine. When a user opens up clienta on one computer and on another computer opens up clientb BUT both computers are on the same network, it works fine. When a user open up clienta on one computer and on another computer opens clientb BUT on different networks there is no video or audio. When the ice messages are exchanged i pass back a number so i know the order its sent. On the opposite end they dont always arrive the same ord

Cites Sam Dutton · 2013-08 · Stack Overflow · on “Connect to a room when arriving with WebRTC.io and NodeJS”

If I'm understanding your question correctly, it looks like you're trying to exchange video data via Socket.io messaging, whereas this needs to be done via RTCPeerConnection. Shameless self promotion, but you might want to look at the WebRTC codelab [LINK] I wrote, which uses Socket.io for signaling. For a few attendees, you can get away with multiple RTCPeerConnections. (Take a look at apps like Talky [LINK] , Tawk [LINK] , FACEmeeting [LINK] or Browser Meeting [LINK] .) For more attendees, you'll need to use an MCU [LINK] (there are open source implementations available), or roll your own server-side WebRTC app. There's more information about WebRTC architectures in this year's Google I/O

Cites Geri Borbás · 2013-11 · Stack Overflow · on “Any WebRTC client implementation for iOS?”

Is there any iOS library/SDK I can use to create a single WebRTC one-to-one video call ? Let's say we will have set up the necessary server environmet suggested at [this video] Not interested in instant cloud services like OpenTok, OpenPeer, OpenClove, vLine, AddLive, etc. We want to create our own infrastructure, I just want to make a test prototype on iOS. Also cannot see clearly what is need to be implemented on Javascript side (if any) and on native side , etc.

Cites Eddie Martinez · 2013-12 · Stack Overflow · on “how does webRTC functionally work?”

Is all the work for the webRTC functionality being done on a webRTC server ? For example, in the rtc data channel from simpl.info [LINK] you can just copy the html for the input text box and out text box as well as the JavaScript and copy it to your local computer and it works perfectly. When the JavaScript file [LINK] is inspected closer, there are a lot of calls which are coming from webRTC libraries without having them on my local computer. I.E. window.localPeerConnection = new webkitRTCPeerConnection(servers, {optional: [{RtpDataChannels: true}]}); at first I thought to get these methods to work I would have to download webRTC to the local machine that will be hosting the pages and then

Cites Gerald Trost · 2015-07 · Stack Overflow · on “Finding a TURN server VM image”

A WebRTC Google developer says: But the thing I would really recommend is the long name but really good product: rfc5766-turn-server which has Amazon VM images you can just take, download and deploy into the cloud and you've got your TURN server provisioned for all your users right there Here is the tutorial [this video] where he makes the statement. But I was unable to find any downloadable Amazon VM image of rfc5766-turn-server and my questions in the google discussion groups did not get answers. So if any one knows where to download these Amazon VM images, please give me the link.

Cites user1960364 · 2015-12 · Stack Overflow · on “WebRTC NodeJS Server Architecture”

I'm interested in building a web application similar to TinyChat where multiple users can be in a room and broadcast their audio/video feeds to everyone else in the room. I've been looking at WebRTC and it looks pretty easy to get started with a P2P setup, but I'm having trouble finding out how to do WebRTC with a client/server architecure. I've watched Google's presentation video [this video] on WebRTC and the different network topologies common in working with WebRTC. The one I'm most interested in is that in working with an MCU where the MCU is responsible for broadcasting the data to everyone else in the room, thus eliminating P2P. My question is, how would I go about this? Are there any work

Cites Ankit Pandey · 2018-12 · Stack Overflow · on “Stream received but not showing in video element html for multi connection only”

@jib I need to make a video conferencing(multiple connections) web app. I saw google [this video] video. I need step wise tutorials/docs/wiki for implementing confrening web application same as google or any other community discussed.

Cites plant · 2019-02 · Stack Overflow · on “How does the STUN server get IP address/port and then how are these used?”

I'm trying to understand how WebRTC works and am having trouble understanding the role of STUN. From what I understand in reading about STUN on various web-pages, such as rfc5389 [LINK] , or watching Google's 2013 presentation on WebRTC [this video] , the only thing STUN seems to do is tell the client what it's public IP address/port is. However, looking at how one might implement a STUN server suggests they're a lot more involved, and seems to include things like fail-back support for UDP, TCP, and TLS-TCP, and handshaking where the client and server report what they expect their IP address to be and verify it against what the other side says their IP address is. For example, anecdotally, the js