Back to Help
Features

Video Import & Export (Desktop)

OBD-NINJA Desktop lets you attach a pre-recorded MP4 to an existing driving session (Import) and generate a new MP4 with the telemetry HUD composited on top (Export). Both the Dashboard layout and the video-linked GT View layout are supported.

Published · April 17, 2026·Updated · April 17, 2026

1.Overview & requirements

You can link footage captured by the mobile app, or footage from an action cam or similar, to any driving session — and export telemetry-overlaid video files. Both import and export use the bundled FFmpeg, so there is nothing extra to install.

HDR export is the only feature that depends on extra hardware. Every other feature runs on a standard macOS or Windows machine.

Supported OSmacOS / Windows desktop build
EncoderBundled FFmpeg (no install required)
HDR export (macOS)Apple Silicon / Intel Mac — VideoToolbox HEVC hardware encoder
HDR export (Windows)NVIDIA NVENC / Intel Quick Sync / AMD AMF HEVC encoder
Mobile video exportNot supported (this feature is desktop-only)

2.Video import

Attach footage that wasn't captured by the mobile app — action cam clips, external recorders, etc. — to an existing session. Imported video is used as the playback video and as the background for GT View exports.

Import steps

  1. Open "View Driving Logs" from the home screen and pick the session you want to attach video to.
  2. An "Import" button appears next to the "Video" row in the record details (only for sessions without video yet).
  3. Tap it and choose the MP4 file in the system file picker.
  4. A progress dialog shows percentage and bytes in real time. You can press "Cancel" at any point to abort.
  5. Once the copy finishes, metadata (start time / duration) is parsed automatically and linked to the session.
  6. When you see the "Video imported" snackbar you're done — the video is now available on the playback screen.

Supported formats

Only MP4 (.mp4) files are accepted. Any codec packaged in .mp4 (H.264, HEVC, etc.) will import.

Playback and export still need a codec the OS decoder (AVFoundation on macOS, Media Foundation on Windows) can handle.

Copy behavior

TransferStreamed in 4 MB chunks
DestinationUnder the app's documents folder: videos/imported_<timestamp>.mp4
Source fileLeft in place (copied, not moved)
On cancelPartial file is deleted automatically
On failureError dialog + partial file deleted

Metadata parsing (start time)

To line up telemetry with the footage, the start time is resolved in this priority order:

  1. ffprobe / ffmpeg analysis — reads the creation_time tag and duration inside the file
  2. Filename inference — used when the name contains a recognizable YYYYMMDD_HHMMSS-style timestamp
  3. Session start/end + duration — the final fallback if neither is available

The video start time is essential for HDR export and telemetry sync. Import the original MP4 with its creation_time tag intact whenever possible. If the tag has been stripped by renaming or re-encoding, the session's start time is used as a fallback and the sync may not be exact.

After import

  • The "Video" row in the record details flips to "Present".
  • Playback now shows the footage synced to telemetry.
  • The export screen enables GT View layout, HDR export, and the glitch effect.

Re-importing or replacing

The Import button is hidden once a session already has video. To swap the clip, detach the existing video from the record details menu first, then import again.

3.Starting an export

  1. Pick the session from the list and open its playback screen.
  2. Pause at any point and press the export button (it will auto-pause if you were still playing).
  3. The export settings screen opens — choose resolution, FPS, speed, and so on.
  4. Press "Start export" and a save-as dialog asks for destination and filename.
  5. Once you confirm, encoding begins and a progress dialog appears.
  6. When it finishes, the new file is revealed automatically in Finder / Explorer.

The export covers the session from start to end. Trimming a specific range is not supported yet.

4.Export settings

The settings screen lets you pick resolution, FPS, playback speed, and visual effects. Orientation (landscape / portrait) is inherited from the playback layout automatically.

Resolution

OptionPixelsTypical use
720p1280 × 720Social sharing, lightweight files
1080p1920 × 1080Standard (default)
4K3840 × 2160High quality, editing source

Orientation (landscape vs portrait) is inherited automatically from the playback layout.

FPS (frame rate)

Choose 24, 30, or 60 fps. The default is 30.

  • 24 fps — cinematic look
  • 30 fps — the general-purpose standard
  • 60 fps — smooth motion (roughly 2× the file size)

Speed

OptionDetails
Real time (1x)Output matches the real driving duration
2x / 4x / 8x2×–8× faster — useful for condensing long drives

Timelapse footage (shown at 4× or faster with a source video)

Turning this on thins out source-video frames to emphasize that stop-motion timelapse feel. The source video updates at roughly 12 fps while the telemetry HUD overlays smoothly on top.

HDR export (GT View only)

Turn this on to export in HEVC (H.265) 10-bit / BT.2020 / PQ. Supported displays show richer color and higher brightness.

HDR requires all of the following

  • Layout is GT View
  • A source video exists
  • The source video has start-time information
  • A compatible hardware HEVC encoder is available on the OS
  • HDR export is only supported in GT View
  • HDR export requires a source video
  • HDR export requires the source video's start time
  • HDR export requires a compatible hardware HEVC encoder

HDR and the glitch effect are mutually exclusive — turning HDR on automatically turns the glitch effect off.

Glitch effect (when a source video is present)

Overlays RPM-driven video noise on the source footage.

  • Nearly invisible at low RPM
  • Distorts strongly as RPM climbs
  • Cannot be combined with HDR export

Estimated file size

The estimate updates live as you change settings.

  • Baseline: 1080p / 30fps / real time ≈ 80 MB per minute
  • Calculated from resolution, FPS, recording length, and speed multiplier
  • It's an estimate — actual size can vary by about ±30% depending on footage complexity

5.Pipeline & duration

Export pipeline

The progress dialog shows these stages in order:

  1. Preparing… — validate input and reserve temp storage
  2. Extracting frames… (GT View only) — expand the source video to PNG frames
  3. Rendering… — composite the HUD on top and generate frame images
  4. Encoding… — FFmpeg writes the MP4
  5. Done

Elapsed and remaining time are displayed too. You can press Cancel at any point; any partial output file is cleaned up automatically.

Typical export times

ModeSetupApproximate time
Dashboard1080p / 30fps / 60 seconds30–40 s
GT View1080p / 30fps / 60 seconds60–80 s
Timelapse 8x1080p / 30fps — 60 s compressed to 7.5 s5–10 s
4K export30fps / 60 seconds2–3 min

Actual times depend on your PC spec and the length of the source video.

6.Disk usage & output specs

Disk usage (GT View)

GT View temporarily expands the source video to PNG frames. Watch free-space headroom for long, high-resolution exports.

Resolution30fps × 60 s30fps × 10 min
720p~0.9 GB~9 GB
1080p~1.8 GB~18 GB
4K~5.4 GB~54 GB

Temp files are deleted after export finishes, and any leftovers are swept on the next app launch.

Output file spec

FormatMP4 (H.264, or HEVC for HDR)
Default filenameobd_ninja_<timestamp>.mp4
AudioIncluded at AAC 128 kbps when a source video is attached and timelapse is OFF (pitch/tempo adjusted to match the speed multiplier). No audio when there is no source video or when timelapse is ON.
Color (SDR)BT.709
Color (HDR)BT.2020 / PQ (SMPTE 2084), 10-bit (p010le)

7.Troubleshooting

Common symptoms and fixes for both import and export.

SymptomWhat to try
Import button is missingThe session already has a video. Detach the existing one first, then re-import.
Error immediately after selecting the fileCheck free disk space — the destination needs room equal to the source file.
Imported video won't playThe codec may not be supported by the OS default player. Convert to H.264 MP4 and import again.
Video and telemetry are out of syncWhen creation_time is missing, playback falls back to session start. Use footage captured by the mobile app or keep the original creation_time tag intact.
"Export failed" dialogCheck free disk space and confirm the source video file hasn't been moved or deleted. Very short recordings (fewer than two playback points) can't be exported.
HDR toggle won't enableThe settings screen shows the reason in a subtext — check GT View layout, source video presence, and the OS hardware HEVC encoder, in that order.
HDR output looks washed outHDR requires a compatible player and display. On SDR displays, tone mapping can make contrast look weak.
App feels sluggish during 4K export4K is heavy per frame. Close other apps, drop to 1080p, or turn on timelapse to reduce total frame count.
Partial file left behind after cancelIt's usually cleaned up automatically. Anything left after a hard crash is swept from exports/temp_* on next launch.

8.Known limitations

  • Trimming (partial-range export) is not supported. Exports always cover the entire session.
  • Timelapse exports are always silent — the source video's audio is not included.
  • Watermarks and text overlays are not supported.
  • Portrait presets for Instagram / TikTok are planned for a future release.

Download OBD NINJA

Free on iOS and Android.