End-to-End Recipes
This guide provides complete, step-by-step workflows for the most common use cases with DJI Metadata Embedder.
📖 Recipe Index
- Basic Processing - Process DJI footage with embedded metadata
- Privacy-Safe Sharing - Remove location data for public sharing
- GPS Track Analysis - Extract flight paths for mapping
- Professional Workflow - Advanced processing with DAT logs
- Map a Photo Archive - Plot geotagged photos on a shareable map
Recipe 1: Basic Processing
Goal: Process DJI videos with embedded telemetry for personal archive
What You Need
- DJI drone footage (MP4 files)
- Matching SRT subtitle files
- DJI Metadata Embedder installed
Step-by-Step
1. Check Your Files
# Verify you have matching pairs
dji-embed check /path/to/drone/footage/
# Example output:
# DJI_0001.MP4: ✅ GPS metadata found
# DJI_0001.SRT: ✅ Telemetry data available
2. Run System Check
# Ensure all dependencies are working
dji-embed doctor
# Should show:
# ✅ FFmpeg: FOUND
# ✅ ExifTool: FOUND (if installed)
3. Process Your Videos
# Basic processing - creates 'processed' folder
dji-embed embed /path/to/drone/footage/
# With custom output location
dji-embed embed /path/to/drone/footage/ -o /archive/processed/
4. Verify Results
# Check the processed videos have metadata
dji-embed check /archive/processed/
# You should see files like:
# DJI_0001_metadata.MP4 (video with embedded telemetry)
# DJI_0001_telemetry.json (flight summary)
Expected Results
- Videos play in any media player with subtitle telemetry track
- GPS metadata searchable in photo management apps
- JSON files contain flight statistics and camera settings
- Original videos remain unchanged
Recipe 2: Privacy-Safe Sharing
Goal: Process videos for social media/YouTube while protecting location privacy
What You Need
- DJI footage you want to share publicly
- Need to remove or fuzz GPS coordinates
- May want to keep altitude/camera data
Step-by-Step
1. Choose Privacy Level
# Option A: Remove ALL GPS data
dji-embed embed /drone/footage/ --redact drop -o /public/safe/
# Option B: Fuzz GPS to ~100m accuracy (city-level)
dji-embed embed /drone/footage/ --redact fuzz -o /public/safe/
# Option C: Keep telemetry overlay, remove GPS metadata
dji-embed embed /drone/footage/ --redact drop -o /public/safe/
2. Verify Privacy Protection
# Check that GPS is removed/fuzzed
dji-embed check /public/safe/
# Should show:
# DJI_0001_metadata.MP4: ⚠️ No GPS metadata (if using --redact drop)
# or
# DJI_0001_metadata.MP4: ✅ GPS metadata found (if using --redact fuzz)
3. Review JSON Summaries
# Check the telemetry JSON files
cat /public/safe/DJI_0001_telemetry.json
# Verify GPS coordinates are:
# - null (for --redact drop)
# - rounded (for --redact fuzz)
4. Upload Safely
Your processed videos now have: - ✅ Telemetry subtitle tracks (safe to share) - ✅ Camera settings and altitude data - ❌ No precise GPS coordinates - ❌ No identifying location information
Privacy Comparison
| Method | GPS Metadata | Subtitle Track | Best For |
|---|---|---|---|
--redact none |
Full precision | Full telemetry | Private archive |
--redact fuzz |
~100m accuracy | Full telemetry | Regional sharing |
--redact drop |
Completely removed | Telemetry without GPS | Public sharing |
Recipe 3: GPS Track Analysis
Goal: Extract flight paths for Google Earth, mapping software, or flight analysis
What You Need
- DJI SRT files (MP4 files optional)
- Google Earth, QGIS, or other GPS software
- Interest in flight path analysis
Step-by-Step
1. Export Single Flight Path
# Create GPX file from one flight
dji-embed convert gpx /drone/footage/DJI_0001.SRT
# Creates: DJI_0001.gpx
2. Export Multiple Flights
# Batch convert entire session
dji-embed convert gpx /drone/session/ --batch
# Creates GPX file for each SRT found
3. Export as CSV for Analysis
# Get spreadsheet data with timestamps
dji-embed convert csv /drone/footage/DJI_0001.SRT -o flight_data.csv
# Batch export all flights
dji-embed convert csv /drone/session/ --batch
4. Open in Analysis Software
Google Earth:
1. Open Google Earth
2. File → Open → Select .gpx file
3. View your flight path with elevation profile
Excel/Sheets (CSV): 1. Open the CSV file 2. Columns include: timestamp, latitude, longitude, altitude, speed 3. Create charts, calculate statistics, analyze patterns
QGIS/Mapping Software: 1. Add Layer → Vector → GPX file 2. Analyze flight patterns, elevation changes, speed profiles
Data Formats Explained
- GPX: Standard GPS exchange format, works with most mapping software
- CSV: Spreadsheet format with raw telemetry data for analysis
- JSON: Flight summary with statistics and camera settings
Recipe 4: Professional Workflow
Goal: Maximum data extraction with DAT flight logs and professional metadata
What You Need
- DJI footage (MP4/SRT pairs)
- DAT flight log files from drone
- ExifTool installed
- Professional video editing workflow
Step-by-Step
1. Install Full Dependencies
# Ensure you have ExifTool
dji-embed doctor
# Should show both:
# ✅ FFmpeg: FOUND
# ✅ ExifTool: FOUND
2. Organize Your Files
/flight-session/
├── DJI_0001.MP4
├── DJI_0001.SRT
├── DJI_0002.MP4
├── DJI_0002.SRT
└── DJI_FLY_20240301_142355_001_log.DAT
3. Process with Maximum Data
# Auto-detect DAT files + ExifTool metadata
dji-embed embed /flight-session/ \
--dat-auto \
--exiftool \
-o /processed/professional/ \
--verbose
4. Validate Quality
# Check for timing drift issues
dji-embed validate /flight-session/ --format json
# Review validation report
5. Review Enhanced Data
# Check all embedded metadata formats
dji-embed check /processed/professional/
# Review enhanced JSON telemetry
cat /processed/professional/DJI_0001_telemetry.json
Professional Results Include:
- Video Files: Embedded GPS, altitude, camera settings via FFmpeg
- EXIF Metadata: Professional GPS metadata via ExifTool
- DAT Integration: Enhanced flight log data from drone
- JSON Summaries: Complete flight statistics and analysis
- Subtitle Tracks: Frame-accurate telemetry overlays
- Quality Reports: Timing drift and sync validation
Professional Applications:
- Insurance Claims: Comprehensive flight documentation
- Surveying: Accurate GPS coordinates and elevation data
- Film Production: Professional metadata workflow
- Flight Training: Detailed performance analysis
- Compliance: Complete audit trail with timing validation
Recipe 5: Map a Photo Archive
Goal: Turn a folder of geotagged photos (e.g. every church you photographed across Finland) into one shareable map
What You Need
- A folder of JPG/JPEG/DNG photos with GPS EXIF data
- ExifTool installed (
dji-embed doctorchecks it)
Step-by-Step
1. Check Your Files
dji-embed doctor
# Should show:
# ✅ ExifTool: FOUND
2. Build the Map
# Recurse into subfolders and give the map a title
dji-embed photomap /photos/finland-churches -r --title "Churches of Finland"
# Creates: /photos/finland-churches/photomap.html
# Should show:
# Mapped 412 of 430 photos; 18 had no GPS data (use -v to list them)
3. Export for Google Earth Too
# Write HTML + KML + GeoJSON in one pass
dji-embed photomap /photos/finland-churches -r --title "Churches of Finland" -f all
# Creates: photomap.html, photomap.kml, photomap.geojson
Expected Results
- Only photos carrying GPS EXIF data appear on the map; the rest are counted in the summary (
-vlists them by filename) - The HTML file is self-contained (photo thumbnails are embedded) but still needs an internet connection to load Leaflet and the OpenStreetMap basemap tiles
- KML opens in Google Earth Pro with thumbnails intact; Google My Maps import may drop the images but keeps the placemarks
- GeoJSON carries
name/timestamp/alt/cameraproperties with no thumbnails, for use in GIS tools
A Note on Privacy
Publishing a photo map publishes your shooting locations — share it deliberately, the same way you would a flight path.
🔧 Troubleshooting Recipes
Recipe Failed? Try These Steps:
1. "No MP4/SRT pairs found"
# Check file naming
ls /drone/footage/
# Ensure files like: DJI_0001.MP4 + DJI_0001.SRT
# Check file detection
dji-embed check /drone/footage/
2. "FFmpeg not found"
# Install dependencies first
dji-embed doctor
# On Windows, try the bootstrap installer
# On macOS: brew install ffmpeg
# On Linux: apt install ffmpeg
3. "Timing drift detected"
# Validate your files
dji-embed validate /drone/footage/
# Review drift report for sync issues
4. "Processing very slow"
# Use quiet mode to reduce output
dji-embed embed /drone/footage/ --quiet
# Process to faster storage location
dji-embed embed /drone/footage/ -o /local/ssd/output/
📊 Quick Reference
File Naming Requirements
- Videos:
DJI_####.MP4(case insensitive) - Subtitles:
DJI_####.SRT(case insensitive) - DAT logs:
DJI_FLY_*.DAT(auto-detected)
Output Files Created
*_metadata.MP4- Processed video with embedded metadata*_telemetry.json- Flight summary and statistics*.gpx- GPS track (convert command only)*.csv- Raw telemetry data (convert command only)
Storage Requirements
- Processing: ~2x original video size (temporary)
- Final output: ~Same size as original videos
- JSON files: ~1-50KB per flight
- GPX/CSV files: ~10-100KB per flight
Need more specific help? Check the decision table or troubleshooting guide.