Video processing

Taawn preprocesses videos on your phone before upload, then processes on GPU servers after upload.

On your phone (before upload)

1. Metadata extraction (GPMF)

Taawn reads GoPro telemetry from the original video using the GPMF stream:

DataDescription
GPSLatitude, longitude, altitude, speed, fix quality
Accelerometerx, y, z per sample
Gyroscopex, y, z per sample
GravityOrientation reference
Camera orientationQuaternion
Video metadataFrame count, FPS, duration
Lens / camera typeModel hints from metadata

Saved as sensors.json and uploaded with the video. If no telemetry is found, upload still works — GPS sync and jump detection may be limited.

2. Downsampling

Video is re-encoded for upload:

  • Longest side: 640 px (aspect ratio preserved)
  • FPS preserved from source (not forced to 30)
  • H.264 encoding for smaller file size

100 MB limit

Very large source files may still hit upload limits. Trim long clips in GoPro Quik if needed.

On the server (after upload)

Segment upload

  • Stores downsampled video + sensors JSON
  • Validates frame range vs your tier’s max segment duration
  • Does not auto-start 3D reconstruction

Run upload

  1. Stores your run video + sensors
  2. Section matching — aligns your frames to the segment reference, computes timing deltas and jump metrics
  3. Creates a Comparison record you see in the app
  4. Optional 3D alignment if you enabled it and the segment is reconstructed

3D (Premium/Pro)

  • Segment reconstruction — builds 3D point cloud and camera poses from reference video (requires calibration)
  • Run alignment — places your run trajectory in the segment’s 3D space

Processing time depends on queue length and video length — often several minutes.