Skip to content
YLabs-FPVPublic

About

Stream video from DJI G2, G3, N3 & Integra straight over HDMI & Network with a Raspberry Pi 4B.

Topics

Resources

Contributing

Stars

6 stars

Watchers

1 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

Repository files navigation

YStreamer

YStreamer

Your FPV feed, on every screen.

Raspberry Pi 4 software that takes the live video from your DJI goggles or a USB camera and sends it to an HDMI screen, any browser, RTSP/SRT/RTMP/UDP streams and recordings - all at once, set up from a web interface.

License: GPL v3 Raspberry Pi 4 Built with Rust GStreamer

⬇️ Download  ·  📖 Documentation  ·  🌐 Website


What it does

Plug your goggles into a Raspberry Pi 4 and everyone else gets to see what you see. One USB-C cable in, and every output at the same time:

  • HDMI - the feed on a TV, monitor or projector, with your logo on top.
  • Any browser - live view on phones and laptops, over WebRTC or WebSocket.
  • Streams - an RTSP server, plus SRT, RTMP (YouTube, Twitch, Facebook) and UDP for OBS, VLC, QGroundControl and Mission Planner.
  • Recording - MP4 or MPEG-TS to the SD card or a USB drive, started by hand, automatically when video arrives, or with a physical button.

It also changes the air unit's camera settings from the browser, shows the goggles' battery and link quality, offers remote access through Tailscale or WireGuard, and updates itself with signed releases that roll back if a new version doesn't start.

Everything is set up from the web interface at http://ystreamer.local. No terminal needed.

See it in action

The Watch page with live video and the camera settings
Live view and camera settings
The HDMI splash screen
On HDMI, before the goggles connect
Recordings on the device
Recordings
The feed in OBS over SRT
Into OBS over SRT

Supported inputs

Source Port Video Camera settings Battery & link
DJI Goggles 2, Integra, Goggles 3, Goggles N3 USB-C ✅ ✅ ✅
DJI FPV Goggles V1 / V2 (experimental) USB-A ✅ ❌ ❌
USB cameras, capture sticks, analog receivers USB-A ✅ - -

Which camera settings can be changed depends on the air unit (O3, O4, O4 Pro).

Note

YStreamer is an independent project. It is not affiliated with, endorsed by or sponsored by DJI.

What you need

  • Raspberry Pi 4 Model B - the only board YStreamer is tested on.
  • A microSD card, 16 GB or more.
  • Power through the GPIO header or a PoE HAT - the USB-C port is reserved for the goggles while YStreamer is installed.
  • A USB-C to USB-C data cable for the goggles, or a USB camera.

Wi-Fi runs on 2.4 GHz only, on purpose: 5 GHz is where the goggles' video link lives. See What you need for the details.

Getting started

On a blank SD card (recommended):

  1. Download the image from the latest release.
  2. Flash it with Raspberry Pi Imager ("Use custom") or balenaEtcher.
  3. Boot the Pi, join the YStreamer Wi-Fi network (password ystreamer) and open http://10.0.0.1. An HDMI screen shows the details and a QR code too.

On Raspberry Pi OS Lite (64-bit, Trixie) that's already set up:

curl -fsSL https://ystreamer.yarosfpv.com/install.sh | sudo sh

The script checks the device, shows what it will change and asks before installing.

See the full documentation for the first boot, every output, guides for OBS, VLC and ground stations, and common issues.

Building from source

Tasks run through mise, which also installs the toolchains (Rust, Node, pnpm):

# The web interface and the backend, for development
mise run frontend:dev
mise run backend:run        # as root: the hardware and port 80 need it

# Checks
mise run lint
mise run backend:test

# What ships
mise run device:package     # build and sign the .deb
mise run image:full         # .deb plus the SD card image (needs Docker)

On Debian or Raspberry Pi OS, mise run backend:deps installs the GStreamer headers the backend builds against. mise tasks lists everything else.

Planning to contribute? See CONTRIBUTING.md for the dev setup and how to submit changes.

Repository layout

Path What's inside
device/backend/ The YStreamer service (Rust, GStreamer): video, outputs, web server
device/frontend/ The web interface (Svelte), compiled into the backend
device/packaging/ The Debian package, install script and update signing
image/ The ready-made SD card image (pi-gen)
site/ The website and documentation (Astro)

Acknowledgements

Inspiration

  • CosmoStreamer: the commercial streaming box that inspired YStreamer.
  • SquirrelCast: a paid Android app that does something similar, and the push to start this project.

DJI protocol documentation

Built with

License

YStreamer is free software, licensed under the GNU General Public License v3.0. See LICENSE for the full text.

Copyright © 2026 YarosFPV

About

Stream video from DJI G2, G3, N3 & Integra straight over HDMI & Network with a Raspberry Pi 4B.

Topics

Resources

Contributing

Stars

6 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Contributors

Languages