โ˜… New ยท Full Motion Video

Full Motion Video, geo-locked to the map

Play geospatially-tagged drone and UAS video, extract its embedded MISB KLV metadata, and watch the live sensor footprint track across the terrain as the footage rolls. Bring your own non-standard DJI clips and convert them into STANAG-compliant Full Motion Video - all in a desktop web UI.

STANAG 4609MISB ST 0601RTSP / UDP / SRT DJI โ†’ MISBKLV extractionSensor footprintYOLO-E (optional)
What it does

The video knows where it is. Now your map does too.

MISB-compliant motion imagery carries full sensor pose in its KLV metadata - platform lat/lon, frame-center, corner points, slant range, and field of view. 3D Map Explorer reads it in real time and projects the sensor footprint onto the map frame-by-frame.

  • Parses and encodes the full MISB ST 0601 UAS Datalink Local Set (96-tag enum) - parser and encoder are exact inverses, sharing one constants source.
  • Live streams from RTSP / UDP / SRT sources; a background ffmpeg tails the KLV elementary stream and fans packets to a bounded per-stream channel.
  • Footprint computed from corner points, or derived from sensor Horizontal FOV + Slant Range when absent - reports coverage area and Ground Sample Distance (GSD).
  • Range-aware HTML5 <video> serving with full HTTP Range / HEAD support for instant scrubbing.
GET /api/fmv/{id}/telemetry
// MISB ST 0601 - sampled telemetry (SSE)
{
  "frame": 1284,
  "sensorLat": 34.0522,
  "sensorLon": -118.2437,
  "frameCenterLat": 34.0498,
  "frameCenterLon": -118.2511,
  "slantRange": 1240.5,
  "sensorHFOV": 60.0
}
โ†’ footprint polygon drawn on map
DJI โ†’ STANAG conversion

Standardize consumer drone footage

Most DJI video isn't MISB-tagged. 3D Map Explorer ingests DJI telemetry from multiple sidecars and muxes it into a STANAG .ts file - so your library plays back geo-locked just like military-grade motion imagery.

๐Ÿ“„

SRT sidecars

Densest telemetry source - per-second subtitle logs muxed first when present.

๐Ÿ—‚๏ธ

Flight logs

AirData CSV and DJI Fly .txt / .dat logs parsed into ST 0601 frames.

๐Ÿ–ผ๏ธ

EXIF / XMP

Fallback telemetry extracted via MetadataExtractor when no log exists.

๐Ÿ”

Preference order

SRT โ†’ flight log โ†’ EXIF, so the richest source always wins per clip.

๐ŸŽฌ

MPEG-TS muxing

STANAG .ts output with PMT rewrites and KLV injection, mirroring dji-to-misb.

๐Ÿ“Š

Async jobs

Poll /api/fmv/dji-convert/jobs/{jobId} for conversion progress.

Motion-image exploitation New

Stabilize the footage. Mosaic the frames.

Two more exploitation capabilities over the FMV pipeline - the RemoteView "Motion Image Stabilization" and "mosaic out of FMV frames" gaps, closed.

๐ŸŽฅ

Motion-image stabilization

ffmpeg libvidstab two-pass (detect โ†’ transform) on a registered stream produces a stabilized clip, registered as a new FMV stream. Tunable shakiness/smoothing; capability-gated (503 when the ffmpeg build lacks vidstabdetect). POST /api/fmv/{id}/stabilize.

๐Ÿงฉ

Frame mosaicking

Samples frames at a given fps, georeferences each via its KLV corner points (TL/TR/BR/BL โ†’ ground footprint), and composites them into a north-up GeoTIFF registered as a new COG - served by the ImageServer. POST /api/fmv/{id}/mosaic.

Optional AI detection

YOLO-E object detection on every frame

An optional zero-shot sidecar posts frames to /detect and draws bounding boxes over the video overlay. Detections can be georeferenced against the KLV footprint and broadcast as CoT - video objects become tactical tracks. It degrades gracefully - hidden entirely when disabled or the sidecar is down. GPU (NVIDIA, CUDA 11.8+) recommended. The AI/ML stack โ†’

CapabilityEndpointNotes
Catalog & uploadGET / POST /api/fmvMultipart clip upload or open stream { url }
Clip playbackGET/HEAD /api/fmv/{id}/fileRange-aware bytes for <video>
KLV telemetryGET /api/fmv/{id}/klv ยท /telemetryFull extracted KLV, cached + sampled
Live telemetryGET /api/fmv/{id}/telemetry/eventsSSE stream synced to playback
DJI conversionPOST /api/fmv/dji-convertVideo + sidecar(s) โ†’ STANAG .ts
AI detectionPOST /api/fmv/ai/detectFrame โ†’ bounding boxes (optional sidecar)

Web viewer at /fmv/. Optional AI sidecar default AiDetectionServiceUrl = http://localhost:8003 (separate YOLO-E service). KLV scaling mirrors paretech/klvdata.

Turn drone video into geo-intelligence

From raw DJI clips to STANAG-compliant, footprint-tracked motion imagery - without leaving the desktop.