Guide

How to extract GPS from GoPro video for road surveys

Where GoPro stores GPS inside MP4 files, the difference between GPS5 and GPS9, how to record survey footage with a good fix, and how to export the route to KML, GPX or CSV.

Updated 29 October 20268 min read

Short answer: GoPro cameras with GPS write location data into the MP4 file itself, as a telemetry track in GoPro’s GPMF format. Older and many current models use the GPS5 stream (latitude, longitude, altitude, 2D and 3D speed at about 18 samples per second); newer models add GPS9, which carries time, DOP and fix type per sample. Survey software such as RouteLens reads this track directly, draws the route and links every point to its video time, so you can export KML, GPX, CSV or GeoJSON without a separate GPS logger.

Where the GPS actually lives

A GPS-capable GoPro can store location in a GPMF metadata track alongside video and audio in the original MP4 or MOV. Retain that original file: a transcoded or edited copy may lose telemetry.

Model support matters: GoPro documents GPS9 for HERO11 and HERO13, while HERO12 has no GPS receiver. For HERO12 footage, pair a separately recorded GPX track with the video. A timed track supports map-and-video alignment, but that does not make the synchronisation frame-exact.

GPS5 and GPS9: what is the difference?

GoPro GPS5 and GPS9 compared
FeatureGPS5GPS9
Values per sampleLatitude, longitude, altitude, 2D speed, 3D speedThe same, plus date/time, DOP and fix type
Quality informationFix and precision once per payloadPer sample
Typical camerasMany earlier models and GoPro MAXNewer models
RouteLens statusVerified on real footageDecoder built; real-file verification pending

In practice both give a usable survey track. GPS9 makes it easier to judge quality point by point; with GPS5 the quality values arrive once per data packet. Some newer cameras write both streams. If you are not sure what your file contains, a structural check (in RouteLens, node dashboard/validate.mjs <file>) reports the streams it finds.

A real extraction check

Our recorded engineering check used a 4.01 GB GoPro MAX file with 9,316 GPS measurements. The JavaScript output matched every coordinate from an independent Python extraction while reading approximately 4.8 MB of the source. This is one compatibility check, not an accuracy guarantee or a benchmark for every camera.

The homepage demo uses sampled frames and a thinned, coordinate-free track from UGAC’s own test recording; no customer footage is published. Read our validation method and limits before planning a pilot.

How to record survey footage with a good GPS track

  1. Switch GPS on in the camera settings. It is off on some cameras by default to save battery.
  2. Wait for a lock before you start recording. Give the camera a minute under open sky; the GPS icon stops blinking when it has a fix.
  3. Mount the camera with a clear sky view. A windscreen mount under a metal roof or a helmet under dense tree cover will weaken the signal.
  4. Keep recording through the stretch. Stopping and starting creates separate files and new lock times.
  5. Copy every chapter. GoPro splits long recordings into chapter files around 4 GB. In a name like GH011477.MP4, “01” is the chapter and “1477” the video number; GH021477.MP4 is the next chapter of the same recording.
  6. Note the conditions: rain, night, bridges, tunnels and tall buildings all show up later as gaps or poor-quality points.

Reading quality: fix, DOP and gaps

Not every GPS point is equally trustworthy. Check three things:

  • Fix type: a 3D fix uses enough satellites for latitude, longitude and altitude; a 2D fix or no fix should be treated with caution.
  • DOP (dilution of precision): lower is better. It is a geometry indicator, not an accuracy guarantee in metres.
  • Gaps and jumps: an outage or a jump faster than any vehicle should split the route, not be bridged with a straight line.

RouteLens applies a quality policy (driving, cycling, walking or custom), keeps a reason for every rejected point and splits the route at gaps and jumps over 60 m/s. Positions inside a gap are never invented.

Exporting the route

Route export formats
FormatBest for
KMLGoogle Earth, quick sharing with a client
GPXGPS apps and other route tools
CSVExcel and audit: keeps rejected points and time provenance
GeoJSONQGIS, ArcGIS and web maps
Geotagged JPEG framesA photo every N metres with EXIF GPS

See our guide to exporting survey findings to GIS for coordinate systems and how to keep the camera position separate from the defect position.

Limits to keep in mind

Camera GPS is consumer-grade. It is excellent for finding and revisiting locations along a road, but it is not survey-grade positioning, and video-to-GPS sync is not frame-exact. For contractual chainage, calibrate against an approved reference route with control points instead of relying on travelled distance.

Sources and further reading

Questions

Does every GoPro record GPS?

Only models with a GPS receiver, and only when GPS is switched on in the camera settings. Check that the GPS icon shows a fix before you record.

Can I get GPS out of a GoPro video without special software?

The data is inside the MP4 telemetry track, so a tool that understands GoPro’s GPMF format is needed. RouteLens reads it directly and exports KML, GPX, CSV or GeoJSON.

Why does my GoPro route have straight lines or gaps?

Straight lines usually mean a tool bridged a GPS outage. Under bridges, in tunnels or under tree cover the camera can lose its fix; a good review tool should show the gap instead of drawing across it.

RouteLens is built by UGAC. Where this guide describes RouteLens behaviour, it reflects the release status published on 29 October 2026; see the product overview for what is verified.

Next step

See RouteLens on your own footage.

Book a 30-minute walkthrough. Bring a recording and a sample report, and we will show you the map, video, findings and coverage working together.

Book a demo