Skip to content

Stream troubleshooting

Most stream problems fall into one of four buckets: nothing plays, wrong source plays, playback stutters or recording fails. Work through these in order; each step rules out the previous one.

No video at all

  1. Is the drone online? Check the assets panel. A grey peer dot means the drone is offline and nothing else below will matter.
  2. Is the tile bound to the right peer? Open the stream tile binding dropdown. The tile must show the peer you expect. An unbound tile shows “No source”.
  3. Is the publisher actually streaming? The tile footer shows the transport chip (WebRTC / WHIP / RTMP / HLS). If the chip is “idle”, the publisher hasn’t started. For DJI:
    • Is auto-stream enabled for the dock?
    • Are the three preconditions met (dock online, aircraft online, livestream permission granted)?
  4. Is TACLINK subscribed? Open the TACLINK debug tile and find the track. packetsReceived should be rising. If it’s zero, the subscription failed; reload the tile.

Wrong tile binding

When multiple drones are in the op it’s easy to have two tiles bound to the same peer, or a tile bound to nobody. Fixes:

  • Click the tile title bar to reopen the binding menu. Pick the correct peer and camera.
  • The dashboard’s Layouts → Reset to default rebuilds the tile grid from the mission role so bindings match the op’s expected drone list.
  • If a drone was swapped during the op, bindings are stale. Commanders can re-assign them from the dashboard’s Participants panel.

Freezing or stuttering

  1. Check the transport chip. If it shifted from WebRTC to RTMP or HLS mid-op, the publisher had trouble. RTMP / HLS adds 2-8 seconds of delay but is more robust.
  2. Check the NACK / PLI rate in the debug tile. A persistent stream of NACKs means uplink loss on the publisher side; TACLINK is asking for retransmits it doesn’t get.
  3. Drop a simulcast layer. For operators on thin connections, the tile’s “Quality” menu caps subscription to a lower simulcast layer. Lower layers use less bandwidth and decode cheaper.
  4. CPU check. If the app tab is pinned at 100% CPU — common on older laptops with 6 video tiles at HD — close tiles you don’t need. The HUD and map are cheaper than live video.

DJI WHIP NACK → RTMP fallback

DJI docks publish over WHIP when the path is clean; if NACKs cross the threshold the argus-android tablet flips the dock to RTMP as a fallback. The transport chip on the tile switches from WHIP to RTMP and you lose ~4 seconds of latency. Fallback is automatic and reversible.

Recording failures

Recording runs on the Egress agent, not in your browser. Symptoms on the ops side are a red “Recording failed” toast and the clip never showing up in the mission’s media.

Check, in order:

  1. S3 quota. Org admins see bucket usage on Admin → Organisation → Storage. If usage is at cap, nothing new will write. Expand the cap or purge old media.
  2. Egress agent health. The agent’s status is surfaced on the dashboard banner when it is unhealthy. An unhealthy agent means all recordings in the org are paused until it recovers.
  3. Publisher-side encoder drops. If the publisher briefly stopped and came back, the Egress agent segments around the gap but the resulting clip is shorter than expected. Not a failure — check the clip rather than the toast.

If recording works but the clip is corrupt, capture the clip ID (shown in the mission media panel) and open a ticket with the connectivity escalation bundle.