Watch your GoPro onboard straight from the SD card, synced to telemetry
Review a track day onboard against your telemetry without uploading it anywhere — play the file from disk, or link the SD card folder and let each session find its own clips.
The usual advice for reviewing an onboard against your data is to put the video on YouTube first. It works, and I wrote about how to sync a YouTube onboard. But it is also the step where the review stalls: a track day’s worth of 4K footage has to upload before you can look at a single lap, and some people would rather not post their driving anywhere.
The footage is already on your computer, on the SD card or a copy of it. This post covers how ApexLog plays it from there, next to the telemetry, with nothing uploaded. I built it, so read the tool-specific parts with that in mind. The camera side applies to anyone with a GoPro and a lap timer.
Play from disk
On a session’s Telemetry tab, the video slot has a Play from disk button. Pick a video file and it plays in the same player a linked YouTube video uses, and everything around it follows the file:
- The map cursor moves around the track while the video plays.
- The speed trace cursor and the delta follow along.
- Clicking a lap jumps the video to the start of that lap.
- Clicking the speed trace scrubs the video to that moment.
The file is played by the browser straight from your disk. The player says so on screen (“Plays from your computer — nothing is uploaded”), and that is the whole point of the feature.
Where the sync comes from
An original GoPro file with GPS syncs itself. The HERO11 Black and HERO13 Black write GPS, with the time, into the video file, and ApexLog lines the footage up with the session from that camera GPS time. No click, no clap in front of the lens. The HERO12 Black has no GPS, so its clips take a sync point like any other camera. The mechanics of the GPS-time sync are in the overlay post.
Any other video, from another camera or a re-exported file, takes the same single sync point as a YouTube onboard: pause on a moment you can find on the speed trace, such as pulling out of the pit lane or the first hard braking, and click that moment on the chart. The sync is remembered in the browser, so picking the same file again later needs no new sync.
Chapters
GoPro cuts a long recording into several chapter files. You can pick all the chapters of one recording together. Clicking a lap or a point on the trace opens the right chapter, and playback carries on into the next one when a chapter ends. If you click a moment the picked files don’t cover, the player tells you there is no footage there rather than guessing.
Link the footage folder
Picking files by hand is fine for one session. For a whole day, there is Link footage folder on the same tab: point it at the folder with the clips, the SD card or a copy of it.
After that, each session looks through the folder for its own clips, by the camera’s GPS time, and opens them already synced. You don’t pick anything per session. While it looks, the player shows how far the scan is, and when it is done it shows how many clips matched, or that none in the folder cover the session.
Two details worth knowing:
- Matched clips are the default, also when the session has a YouTube link. YouTube stays one click away in the YouTube / Disk switch above the player.
- Only GoPro clips with GPS are matched (HERO11 Black, HERO13 Black; not the HERO12 Black, which has no GPS). A clip from any other camera still plays with Play from disk and a sync point.
What the browser remembers
This is the part that differs by browser, so here it is plainly: if you have a choice, use Chrome (or Edge). It is the only way to link the footage folder once and have it still there next time, and it is the faster browser for rendering the overlay video too: on a full 4K HEVC chapter I measured roughly 9× real time in Chrome against about 2× in Safari (details in the overlay render post). Safari works, it just asks you to pick things again.
| Chrome, Edge | Safari, Firefox | |
|---|---|---|
| Footage folder | Remembered. Works right away on a later visit, or after one Reconnect folder click | Can’t be remembered; you pick the folder once per visit |
| A video you played | Remembered per session, even after closing the browser. One Reconnect video click if the browser asks again | You pick the file again after a reload |
| Forgetting | Forget folder, Forget video | Nothing to forget |
The reconnect click exists because the browser, not ApexLog, decides when to ask for access again. If a file was moved or deleted, it is simply not offered. In every browser, switching between tabs or sessions and coming back keeps the video open, already synced.
What else the local player does
Because it is the same player, a few other things work on a local file too: a live overlay (speed, lap time and delta, track map, G, OBD channels) drawn on the picture while it plays, Render this clip to turn what you are watching into an overlay MP4, and Notes from audio. I’ll cover those separately in the live overlay post and the voice notes post.
Limits
- Desktop only. The footage folder and Play from disk are for a computer.
- Codec. GoPro records HEVC/H.265 at higher resolutions, and a browser without that codec can’t play it. The player then says that the browser can’t play the file, usually because of the codec, and suggests another browser, instead of showing a blank player. The video file itself is fine.
- Safari and Firefox forget. Plan on re-picking the folder or the file each visit, as in the table above.
- Automatic matching needs GPS in the clip. HERO11 Black or HERO13 Black (the HERO12 Black has no GPS). Other cameras mean one manual sync point per file.
- One computer. The remembered folder and sync live in that browser. On another computer or browser you link again.
- Nothing is uploaded. That is the point, but it also means the footage lives only on your computer. Local playback is a feature of your own Telemetry tab, and I haven’t built it as something to hand to someone else; a YouTube link is still the way to attach footage others can play.
What you need
- A session in ApexLog with GPS telemetry, imported from a RaceChrono
export (
.rczor CSV v3) or a RaceBox CSV. The RaceChrono import and RaceBox import pages cover the upload. - The original GoPro files, from the card or a copy, for automatic sync.
- A desktop browser. Chrome is the one I recommend: it remembers the folder and the video, and renders faster. Edge remembers the same things; Safari and Firefox work with re-picking.
The session itself stays with the rest of the day: laps, setup, tires and pressures in the track day logbook.
Try it with one session
Import a session, open its Telemetry tab, press Play from disk or Link footage folder, and pick the card:
Import a session and play your onboard →
Free during beta.