The Hidden Gems of WebRTC Goodness May Well Lie Within GetUserMedia Itself

09/12/2015

WebRTC GetUserMedia is more important than the rest of this communication stack.

The surprising present in WebRTC - GetUserMedia

Who would have believed? With all the magic and distraction that video calling from a browser brings with it, the real treasure trove resides in the basics – WebRTC GetUserMedia.

Simplifying things, WebRTC has 3 distinct areas/APIs to it:

  1. GetUserMedia, allowing access to camera and microphone inside the browser
  2. PeerConnection, taking care of all the mess that is a voice/video call
  3. Data Channel, making it possible to send any arbitrary message across browsers directly

I’ve pointed up in the past how WebRTC GetUserMedia gets used by Mailchimp and WhatsApp. Taking a camera snapshot is nice, but what else can we achieve with this access we’ve been given?

TalkLessNow

Chris Kranky had an idea a few weeks ago. Measuring how much you’re yapping in a call as opposed to listening. So he made it happen. On a shoestring budget, some connections and a bit of time and TalkLessNow was born.

How it works?

The website is quite spartan. When you go on a phone call (not a WebRTC one), you just press the green Call button on talklessnow.com.

The code on the site “listens” through the machine’s microphone to your call. Whenever it hears enough of a volume – it assumes you’re talking. If the volume is lower than its configured threshold – you’re listening.

Just WebRTC GetUserMedia. No PeerConnection or any other fuss.

Will it work?

Here in Israel, I am sure the results won’t be good. We’re used to talking over each other and interrupting. Efficiency at its best. If in a call between Israelis it shows less than 70% of talk time per participant, I’ll crown that session a success.

Seriously though, we should be listening a lot more than we’re talking.

Same but different

The now defunct Guitar Tuner works the same way. It doesn’t work anymore because the site is served on HTTP and WebRTC GetUserMedia now requires HTTPS to work with the latest Chrome release (progress, you know).

Ziggeo

Here’s another example.

Ziggeo is making use of WebRTC to record videos. They do that by employing WebRTC GetUserMedia, storing the resulting media locally and at the end of the recording sending it to their servers. The sending part doesn’t occur via WebRTC.

There’s an interesting interview with Susan Danziger, CEO of Ziggeo from last week that you should read.

Is this Real Time Communications?

WHO CARES?

It works. It gives business value – and in ways that weren’t really possible up until today.

There’s a lot more to WebRTC than classic VoIP.

Responses

Lawrence Byrd says:
December 9, 2015

As you say, Tsahi, we have spent a lot of time within the WebRTC world talking (70%+) about Peer Connections, ICE, codec standards, triangles and trapezoids that we tend to forget the fundamentals of just making it easy for JavaScript browser-apps to simply access the capabilities of the surrounding platform. Which is what GetUserMedia does for cameras and microphones – the shoestring API. The Mozilla work on making it easy to get streams from canvases etc. is another useful step. And this also means we should ensure that GetUserMedia keeps up with any and every other new platform media capability from thumbprint readers to tactile gloves and VR experiences :).

Reply
Laurent says:
December 19, 2015

I too am very interested in streaming a canvas element to a peerconnection. But there are really cool things to do just with the camera feed. Imagine a tool that monitors your desktop activity and helps you take breaks or let’s you take nice screenshots, annotate them and share them? Or even record screencasts and upload them to YouTube, all inside your browser without any installation? Amazing.

Reply
    Tsahi Levent-Levi says:
    December 22, 2015

    Laurent, definitely useful use cases. The question is – who would trust a web service like this sitting all day and watching them.

    Reply

Comment