API

Why WebRTC-based webcam recorders are a terrible idea

Posted February 2, 2017
Written by Sören Balko
Clipchamp is a free online video editorTry for free
Share this post

Thanks to WebRTC, it has never been easier to build reliable video conferencing services that run entirely in your web browser. More recently, some online services started to offer WebRTC-based webcam recorders. Not a good idea.

Whoever starts using WebRTC-based services such as Google Hangout does not want to go back to the old world of installing proprietary software packages, regularly prone to security flaws, not to mention the subpar user experience of many desktop videoconferencing software solutions. In theory, WebRTC makes all of these problems go away.

So what is WebRTC?

In short, WebRTC is a set of browser APIs, accompanied by implementations of some network protocols tuned to transmitting audio and video streams in real time. Thanks to clever techniques like STUN and TURN, WebRTC can set up peer-to-peer connections to stream audio and video data between computers in different networks. Web application programmers launch a video conference with a few lines of Javascript. The underlying WebRTC stack handles the complexity of setting up a real-time streaming connection to the other participants. Other than going to great lengths to establish peer-to-peer network connections, WebRTC also provides the means to access a device’s audio and video recording options – that is, its microphone and webcam.

So what’s wrong with WebRTC?

Nothing and just about everything. But we will come to that and let me get that straight: WebRTC is an amazing technology for what it set out to accomplish: peer-to-peer video conferencing on the web. Full stop. Did I mention that using WebRTC to capture high-quality webcam recordings on a website is a terrible idea? Before I explain why that is, let’s take a look at how WebRTC can be mutilated into a server-side webcam recorder:

Working principle of WebRTC webcam recorders

The “trick” is to run a regular WebRTC client as a server-side cloud service. The client device (a laptop, desktop computer, Android phone, etc.) establishes a connection to the cloud service through WebRTC. On the server, the incoming video stream is not merely being watched, but saved into a file and then transcoded into a common video format such as MP4.

Fundamentally, video conferencing and webcam recordings may have many things in common – its purposes and corresponding trade-offs are very different though.

High Quality vs. Limited Bandwidth

There is this one goal that every video conferencing software must fulfil: to keep going. Once the conference has started, its participants would not fancy being kicked out because of fluctuating network conditions. Unfortunately, fluctuating network conditions are as much a reality of 2017’s Internet as they were in 1995. As is generally a limited network bandwidth – particularly so on the upstream link from client computer in consumer households on an ADSL or cable Internet connection.

Poor network bandwidth affecting the recording quality in WebRTC webcam recorders

And as a video conferencing software copes with all of that, it must compromise elsewhere: at the streaming bandwidth. That is, WebRTC will dynamically lower the number of bits it uses per second of video. This can be done by dropping frames, lowering the resolution and turning other “tuning knobs” of video compression to “low gear”. As a result, video quality can suffer dramatically. Run a video conference on Google Hangout from an retail ASDL connection or with an oversea’s meeting participant and you know what I mean. Still, this is what you have come to accept in a video conference, but would hardly want in a webcam recording.

Clipchamp does never compromise on the recording quality. Videos captured by Clipchamp come in the same pristine quality as they are produced by a webcam. Compression settings are de-coupled from the network conditions.

Strict Confidentiality vs. Unconditional Sharing

Video conferences are all about communicating . Conference participants do willingly share what is captured by their webcam. When it comes to privacy and confidentiality, webcam recordings are an entirely different matter.

These days, webcam recording has become a mainstay in many industries and applications where protecting the users’ privacy is paramount and where exposing captured videos to 3rd parties must be avoided. Clipchamp serves customers in sensitive domains such as K-12 education, healthcare (including mental health support), and public administration.

WebRTC webcam recorders vs. client-side video compression by Clipchamp

How is a WebRTC-based webcam recorder a privacy issue, you may wonder. It is because of the fact that the cloud-based webcam recorder is operated by a third party: the online webcam recording business. Technically, this third party is a “man in the middle” between your users and your company, who will inevitably have access to all videos that are being recorded, transcoded, and stored. Any incoming video passes through these server-side processing steps. Only once done it can be forwarded to the website whose visitors have submitted the videos.

In comparison, Clipchamp’s HTML5 camera API directly uploads recorded videos from the web browsers running on your users’ client devices to your company’s website or to your cloud storage service (we support a number of popular cloud storage services including AWS S3 and Microsoft Azure).

More from the Clipchamp blog

How to create a GIF using your webcam

November 17, 2021
Want to make a GIF from video webcam content? GIFs can share funny moments, remarkable…

How to Screen Record on Chromebook Without Leaving Your Browser [Step-by-Step Guide]

December 18, 2020
Want to learn how to screen record on a Chromebook? You’ve come to the right place…

Start creating free videos with Clipchamp