Guides
How to sync GPS data with onboard video
The reliable way to sync GPS data to onboard video is to match the video's audio loudness against the GPS speed trace. Engine noise rises and falls with speed, so the two curves share the same shape: line up the peaks on the straights and the data is aligned. Timestamps are a poor substitute because camera and logger clocks are rarely set accurately.
Why this is the step that matters
Everything else in an overlay is automatic. The gauges know what to draw and the export knows what to encode. Sync is the one place where a human judgement is required, and it is the one place where a mistake is glaringly obvious: a speed needle that peaks halfway down the straight, or a braking trace that fires before you touch the pedal.
Get this right and the result looks professional. Get it wrong by half a second and it looks broken.
The audio trick
The reliable method does not use clocks at all. It uses the fact that engine noise tracks speed.
Put the video’s audio loudness on one track and the GPS speed on another, and the two curves have the same shape. Loudness peaks on the straights, exactly where speed peaks. It drops in the braking zones, exactly where speed drops. Slide the data until the peaks line up and you are synced.
This works because both signals come from the same physical event, the car going fast, rather than from two clocks that have to agree with each other.
TrackHero shows this directly as a dual-track timeline: audio loudness against GPS speed, with lap bands marking each lap and nudge buttons for fine adjustment.
Why timestamps let you down
It is tempting to trust the timestamps. Both files have them.
They are unreliable in practice:
- Camera clocks drift. A GoPro that has not been paired with a phone in a while can be minutes out.
- Different time bases. Loggers record UTC. Cameras record local time. A timezone offset, or a daylight-saving boundary, is easy to introduce and easy to miss.
- Recording start is not session start. You pressed record in the pit lane; the logger triggered when you crossed start/finish.
Timestamps make a reasonable first guess. Use them to get within a few seconds, then finish with the waveform.
Getting it precise
Coarse alignment on a speed peak gets you close. To refine:
- Use a braking zone. Speed falls fast under braking, so a sharp edge is far easier to align precisely than the rounded top of a straight.
- Step frame by frame. Watch the exact moment the car turns in, and check the speed trace agrees.
- Check the far end of the session. If it lines up at the start but not the finish, you have drift rather than offset.
When it drifts
Drift means the camera and logger clocks tick at slightly different rates. Over a few laps it is invisible; over a forty-minute session it can accumulate to a second or more.
There is no fix that keeps a long session perfectly aligned throughout. The practical answers are to align on the part you actually care about, or to export a shorter lap range so the drift has less time to accumulate. TrackHero can export a single lap range rather than the whole session, which sidesteps the problem entirely.
Quiet cars
The audio method depends on engine noise. In an EV, or a well-insulated road car with the windows up, there is much less to work with.
Tyre and wind noise still rise with speed, so the waveform usually retains enough shape to be useful even if the peaks are less dramatic. Failing that, align on a visual cue: the frame where you cross start/finish, matched against the lap boundary in the data.
The shortcut: GoPro
If you filmed on a GoPro from the HERO5 onwards with GPS enabled, there is nothing to sync. The telemetry is recorded inside the same file, by the same device, on the same clock. It is aligned by construction.
You would only add a separate .vbo if you want lap timing, which the camera cannot provide.
Last updated .