# MP4 Timed Metadata (sidecar-less DJI footage) Newer DJI models (Air 3S, Mini 5 Pro, and others) record telemetry **inside the MP4** as DJI's `djmd`/`dbgi` protobuf timed-metadata track, with no sidecar `.SRT`. `dji-embed` reads it via ExifTool, so the `convert` exporters and `verify-sun` work directly on the video: dji-embed convert gpx DJI_0001.MP4 dji-embed convert geojson DJI_0001.MP4 --redact fuzz dji-embed verify-sun DJI_0001.MP4 Input is auto-detected by extension: `.mp4`/`.mov` use the ExifTool extractor, `.srt` uses the subtitle parser. A folder of clips works with `dji-embed convert geojson FOLDER --batch`. ## ExifTool version matters ExifTool decodes each model's protobuf schema in a specific release: | Model | ExifTool ≥ | |-------|-----------| | baseline `djmd`/`dbgi` | 13.05 | | DJI Neo | 13.35 | | Air 3S | 13.39 | | Mini 5 Pro | 13.52 | Newer models land in later releases — check the ExifTool change history. If your ExifTool is too old, the stream is recognised but no GPS is decoded, and `dji-embed` reports which schema needs a newer ExifTool. **Getting a current ExifTool** — distro packages lag badly (Ubuntu 24.04 ships 12.76, which decodes no DJI GPS at all). The built-in installer fetches a pinned, checksum-verified copy into a per-user directory (no admin rights): dji-embed doctor --install exiftool It lands in `%LOCALAPPDATA%\dji-embed\tools\` (Windows), `~/.local/share/dji-embed/tools/` (Linux) or `~/Library/Application Support/dji-embed/tools/` (macOS), and `dji-embed` prefers it automatically. `dji-embed doctor` shows the resolved version and whether it can decode each supported model. To use a specific binary instead, set `DJIEMBED_EXIFTOOL_PATH`. ## What you get `GPSDateTime` in the stream is true UTC, so GPX/CoT timestamps, CSV `datetime_utc`, and `verify-sun` are correct without any timezone guessing. Field coverage varies by model (e.g. Air 3S includes gimbal angles; Mini 5 Pro is GPS + altitude only). CSV from an MP4 fills geo/altitude/`datetime_utc`/solar columns; SRT-only camera columns (iso, shutter, …) stay blank. > UTC note: an MP4's time is intrinsic, so `--tz-offset` is ignored for video.