Skip to content

Drone stream tile

The drone stream tile is the primary visual control centre for one drone. It plays the drone’s live video, overlays HUD + AI detections, handles lens + camera switching, and provides a picture-in-picture view for secondary cameras.

Two transport modes

At the top-right of the tile, when both paths are available, two buttons let you switch transport:

  • TACLINK — operator’s local RC path. Peer-to-peer, lowest latency, but requires the operator to be on the same network path.
  • DJI CLOUD API — DJI dock path via WHIP ingress. Cloud-routed, works globally, adds a bit of latency but works even when the operator isn’t directly reachable.

The mode is auto-picked based on the streamSelected event that opened the tile — mode: 'djiCloud' from the DOCKS tab or from a dock’s video-ingress peer, mode: 'taclink' from a handheld peer. You can flip modes at runtime if both are available for the same drone.

Picking a drone

A small peer dropdown sits at the tile header — if multiple drones are currently streaming, use it to switch between them without going back to the streams tile.

The control toolbar

The toolbar overlays the video on hover. Controls, ordered roughly left to right:

Lens selector

  • Only appears for multi-lens cameras.
  • Buttons per available lens — WIDE / ZOOM / IR (naming varies per camera).
  • Click to swap lens mid-stream. The current lens is highlighted.

Quality selector (DJI Cloud only)

  • Buttons for each quality preset the dock reports (smooth / SD / HD / UHD on DJI docks).
  • Click to send the quality change via DJI live_set_quality.
  • For TACLINK streams, quality is negotiated peer-to-peer and has no manual override here.

Camera selector

  • When a drone publishes multiple camera tracks (e.g. aircraft FPV + dock external FPV on DJI Dock 3), the camera selector exposes each. Click to swap the main view.

Overlay toggles

Each toggle enables/disables an overlay — see the overlays section below.

PIP (picture-in-picture)

For drones with secondary camera tracks:

  • A small floating panel docks in a corner showing the secondary camera’s stream.
  • Drag to reposition the panel anywhere on the tile.
  • Click to swap — the secondary becomes the main, main goes to PIP.

Fullscreen

Via the browser’s native Full Screen API — launched from the tile toolbar or the browser’s context menu. Escape exits.

Play / pause / mute

The <video> element is autoplay muted by default. There’s no explicit pause button in the toolbar; pausing is implicit via your browser’s video context menu.

Snapshot / record

These are not in the toolbar of the current build. Recording is controlled at the mission level (auto-record) or via the streams recordings flow. For snapshots, use your OS’s screenshot tool.

Overlays

Six overlays are real in the current build. Each is an independent toggle:

HUD

The heads-up display — attitude, speed, altitude, heading, mode, battery, signal, wind, obstacles, gimbal angle. See HUD overlay for the complete readout reference.

AI Detections

Bounding boxes from the YOLO agent or DJI SEI detections. Each box has:

  • A class label + confidence chip (confidence threshold configurable in the drone settings drawer → AI tab).
  • Colour per class (person / vehicle / animal / other) or a single operator- picked colour depending on drawer setting.
  • Persistent tracking IDs so a box follows the same target across frames.

The toggleSegmentation() control enables both the boxes and the underlying inference subscription.

Flags (detection labels)

When detection overlay is on, an additional “show labels” toggle turns the class-label chips on/off independently of the box outline. Useful when you want clean outlines for screenshots.

AR

Augmented-reality overlay — geo-referenced map entities projected into the camera frame. Flags, other drones, waypoints appear as floating labels at their real 3D positions. Useful for wide search areas where you want to know “what’s off-screen to the right?”. Works best when drone GPS + gimbal state are both fresh — older positions drift.

SAM (Segment Anything)

On-demand segmentation. Click a point in the video and a mask snaps to the object under that point. See SAM overlay for prompts and right-click menu.

SVS (Synthetic Vision System)

Terrain mesh rendered over the video using the same elevation data Cesium uses. Useful in low-vis or night ops to see ground geometry the actual camera can’t.

Joystick input overlay

A small input-viz panel shows live operator stick positions. Draws:

  • Drone sticks (pitch/roll + yaw/throttle).
  • Gimbal sticks (pitch / yaw / zoom).
  • Slider axes (if any — e.g. Ry / Rz on HOTAS controllers).
  • Throttle bar.

Useful for verifying your input hardware is producing the deflections you expect.

Stream health

A compact readout in the HUD overlay shows:

  • Bitrate (bps) — current track-level bandwidth.
  • FPS.
  • RTT (ms) — round-trip time from getStats().
  • Resolution (e.g. 1920×1080).
  • Label — free-form track label.
  • Quality — LIVE or DEMO badge.

This is the same stat set the debug-mode grid overlay shows.

Known limitations

  • No explicit pause / mute UI — browser-native only.
  • No in-tile snapshot / record controls — delegated to mission-level recording.
  • No multi-stream split-screen (PIP handles secondary; no three-up view for three lenses simultaneously).