FLOSS Weekly Episode 766: WebRTC — The Hack That Connects Everyone To Everything

This week Jonathan Bennett and Dan Lynch talk with Sean DuBois, WebRTC wizard, all about the crazy feats the Pion Go server is capable of, how WebRTC is about to change OBS, and what it looks like to build a successful Open Source Career.

WebRTC is for more than video. The TOR Snowflake project uses Pion to sneak TOR traffic through firewalls even with Deep Packet Inspection (DPI) at play. Since nobody wants to block web conferencing, TOR and even Wireguard can use this to slip though.

Sean is also working on some game-changing patches for OBS Studio, including WHEP support to go along with the newly introduced WHIP feature. This enables direct connections to another OBS client, as well as connection to another WebRTC client like vdo.ninja without running an embedded browser to make it work.

And then there’s WebRTC For The Curious, a free CC0 e-book all about the nuts and bolts of WebRTC. And Broadcast Box, a ready-to-run WebRTC one-to-many broadcasting solution that lets you run your own streaming service. You can connect with Sean at the Real-time Broadcast Discord server for information about all of the projects listed here and more!

Continue reading “FLOSS Weekly Episode 766: WebRTC — The Hack That Connects Everyone To Everything”

Robot Allows Remote Colleagues To Enjoy Office Shenanigans

[Esther Rietmann] and colleagues built a Telepresence Robot to allow work at home teammates to have a virtual, but physical presence in the office. A telepresence robot is like a tablet mounted on a Roomba, providing motion capability in addition to an audio/video connection. Built during a 48 hour hackathon, it is a bit crude under the hood and misses out on some features, such as a bidirectional video feed. But overall, it pretty much does what is expected from such a device.

The main structure is build from cheap aluminium profiles and sheets. A Raspberry Pi is at the heart of the electronics hardware, with a servo mounted Pi-camera and speaker-microphone pair taking care of video and audio. The two DC motors are driven by H-bridges controlled from the Pi and an idle swivel caster is attached as the third wheel. The whole thing is powered by a power bank. The one important thing missing is an HDMI display which can show a video feed from the remote laptop camera. That may have been due to time constraints, but this feature should not be too difficult to add as a future upgrade. It’s important for both sides to be able to see each other.

The software is built around WebRTC protocol, with the WebRTC Extension from UV4L doing most of the heavy lifting. The UV4L Streaming Server not only provides its own built-in set of web applications and services, but also embeds a general-purpose web server on another port, allowing the user to run and deploy their own custom web apps. This allowed [Esther Rietmann]’s team to build a basic but functional front-end to transmit data from the remote interface for controlling the robot. The remote computer runs a Python control script, running as a system service, to control the drive motors and camera servo.

The team also played with adding basic object, gesture and action recognition features. This was done using PoseNet – a machine learning model, which allows for real-time human pose estimation in the browser using TensorFlowJS – allowing them to demonstrate some pose detection capability. This could be useful as a “follow me” feature for the robot.

Another missing feature, which most other commercial telepresence robots have, is a sensor suite for collusion avoidance, object detection and awareness such as micro switches, IR / ultrasonic detectors, time of flight cameras or LiDAR’s. It would be relatively easy to add one or several sensors to the robot.

If you’d like to build one for yourself, check out their code repository on Github and the videos below.

Continue reading “Robot Allows Remote Colleagues To Enjoy Office Shenanigans”

Pi Zero Streams Video From “Fake” Security Camera

Fake security cameras are advertised as a cheap way to deter anyone who might be up to no good. This isn’t a crime and punishment blog, so we’re not really in a position to say how accurate that claim actually is, but we see enough of these things for sale that somebody out there must believe they’re worth having. Though if it were us, we’d take this tip from [Daniel Andrade] and convert our “fake” camera into a real one with the Raspberry Pi and WebRTC.

There are an untold number of makes and models of these fake cameras out there, but it seems that many of them share a fairly common design in that the enclosure they use is actually pretty useful for putting your own hardware in. They’re hollow, relatively well protected from the elements, and as most of them use a blinking LED or some other feature to make them look more authentic, they already have a functional battery compartment.

As it turns out, the one that [Daniel] picked up for $9 USD is pretty much perfect for the Raspberry Pi Zero and its camera module. He even wired the blinking LED up to the Pi’s GPIO pins so it will still look the part, though replacing it with an RGB LED and appropriate scripts to drive it would be a nice way to get some visual feedback on what the system is doing.

The software side of things is done with Balena, a suite of tools for setting up and managing Linux Internet of Things devices. They provide everything from the SD card image that runs on the Pi itself to the cloud infrastructure that pulls all the data together. [Daniel] dove a little deeper into the software stack when he created his Bitcoin traffic light last year.

For any readers who may feel a sense of déjà vu looking at this project, you aren’t going crazy. We recently saw a similar project that used an ESP8266 and a PIR sensor to add motion sensing capabilities to one of these fake cameras. Now all we need is somebody to put an Arduino in one of them, and we’ll have the Holy Trinity represented.

FruitNanny: The Raspberry Pi Baby Monitor For Geeks

Having a child is perhaps the greatest “hack” a human can perform. There’s no soldering iron, no Arduino (we hope), but in the end, you’ve managed to help create the most complex piece of machinery in the known galaxy. The joys of having a child are of course not lost on the geekier of our citizens, for they wonder the same things that all new parents do: how do we make sure the baby is comfortable, how many IR LEDs do we need to see her in the dark, and of course the age old question, should we do this with a web app or go native?

If you’re the kind of person who was frustrated to see that “What to Expect When You’re Expecting” didn’t even bother to mention streaming video codecs, then you’ll love FruitNanny, the wonderfully over-engineered baby monitor created by [Dmitry Ivanov]. The product of nearly two years of development, FruitNanny started as little more than a Raspberry Pi 1n a plastic lunch box. But as [Dmitry] details in his extensive write-up, the latest iteration could easily go head-to-head with products on the commercial market.

[Dmitry] gives a full bill of materials on his page, but all the usual suspects are here. A Raspberry Pi 3 paired with the official NoIR camera make up the heart of the system, and the extremely popular DHT22 handles the environmental monitoring. A very nice 3D printed case, a lens intended for the iPhone, and a dozen IR LEDs round out the build.

The software side is where the project really kicks into high gear. Reading through the setup instructions [Dmitry] has provided is basically a crash course in platform-agnostic video streaming. Even if a little bundle of joy isn’t on your development roadmap, there’s probably a tip or two you can pick up for your next project that requires remote monitoring.

It probably won’t surprise you that geeky parents have been coming up with ways to spy on their kids for some time now, and if you can believe it, some don’t even include a Raspberry Pi.

Raspberry Pi Spies On… Err… Monitors Baby

“Quick! We’re having a baby and we need a baby monitor!” Rather than run to the local big box and plunk down cash for an off-the-shelf solution, any self-respecting hacker would rise to the challenge and hit the shop to build something like this live streaming eye-in-the-sky baby camera. Right?

baby-monitor-raspberry-pi-cameraAt least that’s how [Antibore] handled the situation, and the results are pretty good. He designed his build around an old Raspberry Pi 2 that was hanging around. That required a WiFi adapter, and since he wanted video and audio he needed a camera and mic. The first USB mic had a nice compact design but didn’t perform well, so a gutted gooseneck mic soldered right to the USB connector joined the design spec. A camera module, cell-phone quick charge battery bank, and a 3D printed case round out the BOM. A knitted cozy to keep it looking warm and fuzzy was provided by the mother-to-be — although we think it looks a little like [Mike Wazowski].

This self-contained unit will work anywhere it has access to a WiFi network. Mounted on the baby carrier, it’ll provide a live stream to any browser and provide the new parents with a little peace of mind.

There are a lot of baby monitors on the market, some of them terrible and in need of a rebuild. Kudos to [Antibore] for deciding to roll his own custom solution and for getting it done before the blessed event. Now how about painting that nursery?