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.
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.
<video> serving with full HTTP Range / HEAD support for instant scrubbing.// 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
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.
Densest telemetry source — per-second subtitle logs muxed first when present.
AirData CSV and DJI Fly .txt / .dat logs parsed into ST 0601 frames.
Fallback telemetry extracted via MetadataExtractor when no log exists.
SRT → flight log → EXIF, so the richest source always wins per clip.
STANAG .ts output with PMT rewrites and KLV injection, mirroring dji-to-misb.
Poll /api/fmv/dji-convert/jobs/{jobId} for conversion progress.
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 →
| Capability | Endpoint | Notes |
|---|---|---|
| Catalog & upload | GET / POST /api/fmv | Multipart clip upload or open stream { url } |
| Clip playback | GET/HEAD /api/fmv/{id}/file | Range-aware bytes for <video> |
| KLV telemetry | GET /api/fmv/{id}/klv · /telemetry | Full extracted KLV, cached + sampled |
| Live telemetry | GET /api/fmv/{id}/telemetry/events | SSE stream synced to playback |
| DJI conversion | POST /api/fmv/dji-convert | Video + sidecar(s) → STANAG .ts |
| AI detection | POST /api/fmv/ai/detect | Frame → 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.
From raw DJI clips to STANAG-compliant, footprint-tracked motion imagery — without leaving the desktop.