GogglesView

See what your goggles see

The DJI Goggles 3 live feed on your Mac, over USB-C. Record it, replay it, send it to OBS.

Download GogglesView 0.11.0 (3.5 MB) Free and GPL-3.0. Apple Silicon, macOS 14 or later. Read the source.
GogglesView window showing a live feed with the stats overlay

Measured

Camera to screen in about a seventh of a second

Point the goggles at a stopwatch running on the Mac's own screen. The picture in the app shows an older time than the stopwatch does. The gap is the whole delay: camera, air link, goggles, USB, decode, display.

Each reading is good to about one frame at 60 Hz, 17 ms. The app's own share is a few milliseconds of that.

146ms
Five readings, stopwatch in centiseconds
RunStopwatchIn the appDelay
149.5549.42130 ms
252.4452.27170 ms
353.4553.29160 ms
448.1948.05140 ms
546.8546.72130 ms
Mean146 ms

What it does

Recording

Saves the stream the goggles send, untouched

No re-encode, so no quality loss. Files go to ~/Movies/GogglesView as .mov or .mp4.

  • Start by hand or when the stream goes live
  • Split by length or size, drop markers while flying
  • Clip gallery with trim that doesn't re-encode
  • Optional logo or text burned in

Send it somewhere

Five outputs

  • UDP MPEG-TS
  • RTMP, for Twitch or YouTube
  • SRT
  • Local web viewer
  • NDI, experimental

New in 0.5

Stabilize, grade, crop for export

Electronic stabilization that adds no frames of delay, .cube LUT looks, and a separate crop for what you record and stream. Covered by tests, not yet tried much on live goggles, so tell me what looks off.

Control

Without leaving your editor

Menu bar controls, global hotkeys, a gogglesview:// URL scheme and AppleScript. Start a recording from a shell script with open gogglesview://….

Replay

Save what just happened

A rolling buffer you can write to disk after the moment passes.

For OBS and for more than one pair

A window made to be captured

A chrome-less capture window for Window Capture, optional keep-on-top, and a mini window. Plug in several goggles and each gets its own window and settings. The app checks GitHub for updates, verifies the checksum and signature, and installs them only when you are not recording.

The Settings window on the Recording tab, with a sidebar listing General, Display, Recording, Streaming and Advanced

Settings in five tabs

General, Display, Recording, Streaming and Advanced. Presets switch a whole set of options at once, and each pair of goggles can keep its own saved profile that applies when it connects.

The same window runs the update check, the diagnostics report and the latency benchmark. Recording options here include splitting by length or size, a loop mode that keeps only the last few minutes, and auto-delete of old files.

Stabilize, grade and crop in Settings

Live stabilization has one strength slider. Color looks take any 3D .cube file, with an intensity control and separate switches for the preview and for what you record and stream.

Output framing has its own aspect, zoom and position, so the preview can stay 16:9 while the file or stream is a vertical 9:16 crop.

The Display tab showing live stabilization, framing and color, and output framing
The Streaming tab with the keyframe encoder switch and the network, RTMP, web viewer and SRT cards

Each output has its own card

UDP, RTMP, the local web viewer, SRT and NDI are set up separately. The switch at the top turns the keyframe encoder on or off, and the stepper beside it sets its bitrate.

The RTMP stream key is kept in the macOS Keychain. The web viewer listens on localhost unless you allow other devices.

Clips, trimmed without re-encoding

The gallery lists everything in your recordings folder with a thumbnail, length and size. Open a clip, reveal it in Finder, share it, trim it or move it to the Trash.

Trimming copies the stream between two points instead of encoding it again, so quality stays as recorded.

The clips and thumbnails in this picture are generated samples.

The clip gallery showing six sample clips with thumbnails, names, dates, lengths and sizes
The menu bar menu with Stop Recording, Save Replay, Screenshot, Freeze Video, Add Marker, Hide Window, Start Network Stream, Reconnect and Disconnect

Run it from the menu bar

Start or stop a recording, save the replay, take a screenshot, freeze the picture, add a marker or start the network stream without bringing the window forward.

This image is redrawn from the menu's own items, not a screen capture.

The overlay is part of the picture

The goggles draw their own overlay (flight data, battery, link strength, storage warnings) into the video they send. With a drone linked, the camera picture sat in the middle of that frame at about 70% of its width and height, with the overlay in the margins.

That overlay shows up in OBS and in recordings. To get a clean picture, turn it off on the goggles: Settings > Camera > Advanced camera settings > Camera View Recording > off. Or crop it out with Output framing.

Frame rate follows what the goggles send: about 35 frames per second in our test with a drone linked, 60 in an earlier one.

A frame from the goggles with the picture in the middle, the overlay data around it and a dashed box marking a centred crop of about 1.4x

Set up in four steps

  1. On the goggles, open Settings, then About, and turn on OTG Wired Connection to Computer. Unplug before you toggle it, then plug back in.
  2. Drag GogglesView to Applications. The first time, right-click it and choose Open, because releases aren't notarized.
  3. Approve the helper in System Settings, General, Login Items & Extensions. It owns the USB device.
  4. Start Share Liveview on the goggles, pick them in the app.
The goggles picker listing the connected pair
The window showing a notice that it is waiting for a keyframe from the goggles

If it says it's waiting for a keyframe

The goggles send one full picture when Share Liveview starts and none after. If you connect late, the app has nothing to start from and says so.

On the goggles, switch Share Liveview to Mobile Device via Wi-Fi off and on again. That's a limit of the goggles' stream, not something the app can fix.

Zebra stripes and focus peaking

Zebra marks blown highlights and focus peaking outlines the sharpest edges, both drawn on the live view. Here zebra is set to 95 and peaking is green at medium strength: the sky and sun are striped, and the gate and the in-focus cone are outlined while the blurred cone is not.

The picture is a generated test scene, not a goggles frame.

A generated test scene with zebra stripes on the bright sky and sun and green focus peaking on sharp edges

Linux and Windows (early)

gvnet is a command line tool that receives the goggles' stream over the network, so it can run outside macOS. It has not yet been tried on real goggles outside macOS. Read how it works.

Available in English, Italian, French and Dutch.

What to know before you install

The goggles' overlay is in the picture
The goggles draw their own on-screen display (flight data, battery, storage warnings) into the video they send, so it shows in OBS and recordings too. Turn it off on the goggles (Settings > Camera > Advanced camera settings > Camera View Recording > off), or crop it out with Output framing. The app tells you once when you start a stream.
Only Goggles 3 has been tried
Tested with Goggles 3 and a linked drone on Apple Silicon. Other DJI goggles may or may not work. Nobody has checked.
Apple Silicon only
The bundled USB library is universal, but nothing has run on an Intel Mac.
Not notarized
That needs a paid Apple developer account. macOS asks you to confirm the first launch. Updates inside the app are checked against the release checksum and code signature.
No calls home
The app contacts GitHub to look for updates, and nothing else unless you set up a stream or webhook. You can switch the update check off.
Something broken
Open an issue and attach the diagnostics report from Settings, Advanced.