Desert Racing Live Stream

Live offroad racing broadcast system

Ford Ranger race truck mid-air after launching off a jump on the desert race course, with a cloud of dust billowing behind it

About

Desert racing takes many people and massive logistics to get two people and a truck out on the course. We wanted a way to "take everyone with us" — team members, friends, family, and fans rarely get to participate in the action on race day. This live streaming system changes that.

Now everyone can watch and interact with the truck in real-time from anywhere in the world. It also creates a platform for sponsors to showcase their involvement in the sport, with live product visibility and direct engagement with an enthusiastic audience.

The desert racing team gathered together for a group photo

This page documents the complete system: the hardware in the truck, cloud infrastructure, and production setup. Whether you're a race team looking to set up your own stream, interested in partnering, or a potential sponsor — we'd love to hear from you.

System Overview

The system has four main components:

Features

Screenshot of the live stream showing multiple camera feeds from the race truck with host commentary overlay and YouTube chat

Truck Setup

The following hardware makes the live stream possible from inside the race truck:

GoPro Cameras (x2)

We run two GoPros with GoPro Labs custom firmware installed. This firmware enables RTMP streaming while simultaneously recording locally. Requires GoPro Hero 7 or later.

GoPro provides a QR code generator to configure streaming settings. Point the camera at the QR code to apply the configuration. We save screenshots of these QR codes and share them in team group chats — the cameras read QR codes directly off phone screens, making remote configuration easy.

Lessons Learned:

Rugged Radios Intercom

The intercom system connects driver and co-driver helmets (with built-in headphones and microphones) and has Bluetooth capability to bridge external communications into the truck.

Lessons Learned:

View from inside the race truck showing the driver and co-driver in their seats with helmets and harnesses

Phone (Discord Communications)

A phone running Discord connects to the intercom via Bluetooth. The driver/co-driver join a voice channel to communicate with the production team and stream hosts in real-time.

Lessons Learned:

Starlink Mini

Satellite internet via Starlink Mini provides the uplink for all video feeds. Connected to a dedicated power switch on the truck.

Lessons Learned:

Stream Station Setup

The stream production station with multiple monitors showing OBS, camera feeds, and chat

Content coming soon.

RTMP Server Setup

The RTMP server acts as a relay between the GoPros in the truck and the OBS production station. GoPros stream to this server, and OBS pulls the feeds from it. This decouples the truck from the production station and allows multiple consumers to pull the same stream.

1. Create a Cloud Server

Spin up a Linux VPS with any cloud provider. A Linode Nanode ($5/month) or similar small instance is sufficient. Choose Ubuntu 24.04 LTS as the operating system.

During setup, create a non-root user with sudo privileges. Note your server's public IP address.

2. Download the Setup Script

3. Upload the Script to Your Server

From your local machine, use SCP to send the zip file to your server:

scp setup.zip youruser@YOUR_SERVER_IP:~

4. Run the Setup Script

SSH into your server:

ssh youruser@YOUR_SERVER_IP

Unzip and run the script:

unzip setup.zip
sudo bash setup.sh

The script will install and configure everything automatically: nginx with RTMP support, firewall rules, a monitoring interface, and performance optimizations. When complete, it displays your server's RTMP URLs and monitoring endpoints.

5. Configure Your GoPros

Use the GoPro Labs QR code generator to create a QR code with your RTMP URL:

rtmp://YOUR_SERVER_IP:1935/live/gopro1

Use gopro2, gopro3, etc. for additional cameras.

6. Pull Feeds into OBS

Add a Media Source in OBS and enter the same RTMP URL. OBS will pull the live feed from the server.

Monitoring & Troubleshooting

The RTMP server provides two web pages for monitoring:

Testing Streams with VLC

VLC Media Player is a convenient way to test individual streams. OBS can sometimes fail to preview video even when the stream is working, so VLC is useful for troubleshooting or for team members who just want to monitor a feed without running OBS.

To open a stream in VLC:

  1. Open VLC and go to Media → Open Network Stream (or press Ctrl+N)
  2. Enter the RTMP URL: rtmp://YOUR_SERVER_IP:1935/live/gopro1
  3. Click Play

If VLC shows video but OBS doesn't, the issue is with OBS configuration, not the stream itself.

Useful Commands

# Check if nginx is running
sudo systemctl status nginx

# View error logs in real-time
sudo tail -f /var/log/nginx/error.log

# Test a stream locally (requires ffplay)
ffplay rtmp://YOUR_SERVER_IP:1935/live/gopro1

# Check firewall rules
sudo ufw status

# Restart nginx after changes
sudo systemctl restart nginx

Roadmap

Team members gathered outside the support bus watching the live stream on a screen during a race