But first, some background

The concept of an RPI-based camera is not new to our platform. You can read more about RPI cameras here:

Requirements

You will need:

  • A Raspberry Pi board. We tested this using a Raspberry Pi 4, but other boards will probably work in a similar way.
  • A camera is preferred but you can also use a simulated feed. The choice of camera does not actually matter that much, as long as you can access the stream feed with a file such as /dev/video0. In our case we used a Raspberry Pi Camera Module v1.3. You can use the program (from Video4Linux project) “v4l2-ctl –list-devices” on your Pi to discover which device driver file your camera is located on. If you don’t have a camera, you can run the WebRTC demo anyway by using a simulated video feed provided in gstreamer called “videotestsrc” (see later)
  • A network connection for the Pi for remote access (see how to set up a connection here in the section “Installing Required Binaries”) It is possible to do the demo without the camera and instead replace it with a static test feed.

The image below shows the setup that we have tested, which will look the same for a Raspberry Pi 4 and a Raspberry Pi Camera rev. 1.3. For a deeper look at the Raspbery Pi and WebRTC, continue reading below. If you are already familiar with these tools, skip to the “Setting up the Raspberry Pi” section.”

The power of Raspberry Pi

The Raspberry Pi has revolutionized the world of DIY electronics and embedded systems. Widely available in nearly any maker or hobbyist webshop, the RPI is both accessible and affordable, making it an ideal choice for a wide range of projects. This compact, versatile single-board computer has empowered makers, hobbyists, and embedded developers to create innovative hardware for a wide variety of use cases.

With its powerful capabilities vs. its low price, the RPI is the perfect candidate for doing mockups, demos etc. Moreover, the RPI benefits from extensive community support, including a wealth of libraries and resources. This means developers can easily find solutions and assistance online if they encounter any issues.

Understanding WebRTC

WebRTC (Web Real-Time Communication) is a cutting-edge technology that enables peer-to-peer communication directly inside a web browser. Originally designed for video conferencing, WebRTC facilitates real-time audio, video, and data sharing over the internet without the need for intermediary servers. This technology has become a cornerstone for modern communication applications, providing high-quality, low-latency streaming capabilities that are essential for surveillance systems. Today, WebRTC is supported by most available browsers.

WebRTC use cases

Web Real-Time Communication (WebRTC) technology has found valuable applications within the Internet of Things (IoT) ecosystem to add communication and video capabilities to various smart devices.

1. Smart alarms

One notable example is WebRTC-enabled smart alarms. While WebRTC is traditionally thought of as a video streaming protocol, the protocol includes data channels that allow the transfer of other types of data, including real-time alerts from alarms. When the alarm detects unusual activity, it can instantly send an alert and start a stream of live footage from connected surveillance cameras to the homeowner’s smartphone, allowing for immediate assessment and action. This capability not only improves security but also provides peace of mind, as homeowners can verify false alarms and respond to genuine threats promptly.

2. Video-enabled bird feeders

With WebRTC-enabled bird feeders, bird enthusiasts can watch real-time video feeds of birds visiting their feeders from anywhere in the world. These smart bird feeders come equipped with cameras and potentially...

Read more »