Building a Technology-Filled Backpack for IRL Livestreaming

This mobile workstation integrates a camera, Raspberry Pi, 4G LTE modem, a battery, and more in order to produce high-quality livestreams.

The world of IRL livestreaming

Whether it's Twitch or Facebook Live, in real-life (IRL) livestreams have exploded in popularity over the last few years. Each one typically features a person or group of people who go to exotic destinations, eat at restaurants, or simply roam the streets within a particular city. Although it is possible to do one with just a phone, the connection often isn't stable enough or the hardware lacks enough power to successfully encode a high-quality stream. This is why many streamers opt for a backpack that contains a small PC, a battery pack, and a connectivity solution, along with some kind of video device.

A plan

In order to challenge herself, Melissa Geels, who runs the Codecat.nl blog, want to build an IRL streaming backpack while using DIY components to accomplish the goal. To keep everything lightweight, she chose to use a GoPro HERO 10 camera since it can output video over USB while simultaneously having plenty of resolution and durability. Keeping with the minimalistic theme, the traditional mini PC was replaced by a Raspberry Pi 4 Model B encased in a large heatsink case because its temperature would consistently rise too high. Cellular connectivity is provided by a Huawei E5372 4G modem that can send network data through USB to the Pi. Last of all, a USB battery pack powers the entire setup.

Setting up the Pi

Underneath each component in this streaming setup is a Wireguard VPN that creates a tunneled connection between everything. This meant Geels could take the video from the Raspberry Pi, send it to a server, and then allow her PC and phone to access it. After synchronizing the Pi's onboard time via NTP, she then connected the 4G modem and set up a simple configuration using the Netplan package.

With the cellular connectivity now working correctly, although limited to just 10GB per day of data, the GoPro was attached via USB. Unlike a webcam, the GoPro communicates with its own HTTP server that can be accessed once its interface has been enabled. Sending a single GET request to the correct URL causes the camera to start outputting an RTSP stream, which is then sent to the server with ffmpeg.

Encoding and control

Before the stream can be sent over the network, it must first be encoded, which is why Geels wrote a custom program in Go that runs on the Raspberry Pi 4. It is responsible for maintaining a connection between the GoPro, the server, and an instance of OBS running on a host PC. To make things easy to control, another program was written, which allows an iPhone to send commands and view telemetry through an app. Information such as the temperature, duration of the stream, and network telemetry is updated every two seconds while the current scene and if the encoding server is running can be set as well.

Putting it all together

Once the software had been thoroughly tested, Geels designed and 3D-printed a custom GoPro mount that attaches the camera to the front of a backpack strap while still enabling a bit of a pivot. The final step involved stashing the Raspberry Pi, modem, and battery into a backpack and connecting everything together with a few angled USB cables. In the end, Geels stated that this build turned out quite well considering it was the first prototype. In the future, she hopes to add better cooling, improve the the iPhone app, and include a better microphone. More information about this IRL livestreaming rig can be found here in Geel's blog post.


gatoninja236

IoT, web, and embedded systems enthusiast. Contact me for product reviews or custom project requests.

Latest Articles