Skip to content

fpv-wtf/dji-moonlight-gui

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dji-moonlight-gui

Stream games via Moonlight and fpv.wtf to your DJI FPV Goggles!

splash

The DJI Moonlight project is made up of three parts:

  • dji-moonlight-shim: a goggle-side app that displays a video stream coming in over USB.
  • dji-moonlight-gui: a Windows app that streams games to the shim via Moonlight and friends. You are here.
  • dji-moonlight-embedded: a fork of Moonlight Embedded that can stream to the shim. The GUI app uses this internally.

Latency is good, in the 7-14ms range at 120Hz (w/ 5900X + 3080Ti via GeForce Experience).

latency


splash

Usage

Setup: dji-moonlight-gui

  1. Install dji-moonlight-shim on your goggles.
  2. Download the latest release and extract it.

Setup: Sunshine

See Sunshine documentation for more guidance.

  1. Download and install Sunshine.

  2. Sunshine runs as a background service automatically and uses a locally-hosted web UI for settings.

    nvidia_1

    Go to https://localhost:47990/ and set a username and password for future settings fanangling.

Pairing

Before you can start streaming, you need to pair the GUI app with the host streaming software. This only needs to be done once.

  1. Run dji-moonlight-gui.exe.
  2. Press Pair.
  3. The PIN will be displayed in the console. This is what you'll need to enter in the host streaming software.
  4. Go to the Sushine PIN tab on the web UI and enter the pin.

Streaming

  1. Run dji-moonlight-gui.exe.
  2. Configure the settings to your liking.
  3. Press Refresh to fetch the list of your games.
  4. Select a game and press Stream.

Modes: BULK vs. RNDIS

There are two streaming modes to choose from: BULK and RNDIS. What does that mean?

RNDIS

This is the default mode. When the goggles are connected to your PC via USB, they appear as a plain old network interface. If you've ever used your phone as a hotspot over USB, then you've used this exact same mechanism before. Since it's just a network interface, all regular networking conventions apply and we can send data to the goggles like any other device.

The main downside is that it's slow! Due to reasons yet unknown, the maximum bitrate we're able to achieve is around 30Mbps before packet loss starts to creep in.

BULK

This mode is more experimental. Rather than using this indirect network route, we can instead send data directly to the goggles via the USB interface. With this, we can easily achieve a bitrate of 100Mbps (as long as your PC can keep up).

The only downside is: driver shenanigans!

Using BULK mode

  1. Use the fpv.wtf Driver Installer to install the correct drivers for the goggles. You may have used this already when you rooted your goggles.
  2. Close any fpv.wtf configurator browser tabs.
  3. Run dji-moonlight-gui.exe.
  4. Select BULK mode.
  5. Crank that bitrate.
  6. ...carry on as normal.