GoPro video
Recordings from a GoPro HERO8 to HERO13 with GPS on (not the HERO12), uploaded as the camera wrote them: every chapter of every recording, under the file names the camera gave them, at the bucket root or in folders. We take frames every few metres along the track and place them.
Each recording becomes one set, named after its
folder and the camera's recording number (0247, or day1/0247).
Folder layout#
<dataset bucket>/
├── GX010247.MP4 recording 0247, chapter 1
├── GX020247.MP4 recording 0247, chapter 2
└── day2/
└── GX010251.MP4 recording 0251, chapter 1
Upload the .MP4 files the camera wrote, under the names it gave them:
GX (H.265) or GH (H.264), the two-digit chapter, then the four-digit
recording number. Text after the name is fine
(GX010247 rear cab Heuston.MP4); a file renamed altogether is not read.
The camera splits a long recording into chapters of about 4 GB:
GX010247.MP4, GX020247.MP4, GX030247.MP4, … Upload every chapter;
a recording with one missing is refused. Folders are only for your own
order: two cameras' recordings with the same number go in separate folders.
The camera's .LRV previews and .THM thumbnails are not needed and are
ignored if uploaded.
Camera#
A GoPro HERO8, HERO9, HERO10, HERO11 or HERO13 with GPS. The HERO12 has no GPS and cannot be used. Upload the files straight from the camera's card: not re-encoded, trimmed or exported from an editor, which drops the camera's settings and its GPS.
Record with:
- GPS on (the camera's preferences);
- 8-bit video, H.265 or H.264;
- HyperSmooth off if the frames are to be measured in. With it on they are fine to look at;
- the camera fixed in place for the whole recording.
GPS#
Positions and times come from the camera's own GPS, stored in the video file. Let the camera find its satellites before you start recording: the GPS symbol on its screen. A recording with a 3D fix for less than half of its length is refused. The camera's GPS is good to a few metres.
Every recording is checked before anything is processed — each file's index and a sample of its GPS, not its frames:
- The delivery holds at least one GoPro video under the name the camera gave it (
GX010247.MP4, orGH…for H.264; text after the name is fine), every.mp4is named that way, and no chapter of a recording is delivered twice. - Every chapter of a recording is delivered: the camera splits a long recording into files of about 4 GB,
GX01NNNN,GX02NNNN, …, and a gap between them is a missing file. - A recording's last delivered chapter is at the camera's ~4 GB split size, so the recording probably carries on in a chapter that was not uploaded. (a warning, not an error)
- Each video holds the camera's own settings, from a GoPro HERO8 to HERO13 with GPS (not the HERO12, which has none), and every chapter of a recording comes from the same camera with the same lens, frame size and frame rate.
- Each video is a whole MP4 file as the camera wrote it: an H.265 or H.264 track, 8-bit, its frames stored in the order they are shown, and GoPro's telemetry track beside it. Only each file's index and a sample of its telemetry are read, not its frames.
- The camera's GPS was on and had a 3D fix for at least half of the recording, and its clock reads a time after 2015 and not in the future. The days it reads are the dataset's acquisition dates.
- More than 10% of the recording has no 3D fix, or more than 5% a dilution of precision above 5: frames there are left out, or may be placed metres off. (a warning, not an error)
- The track lies where the dataset's coordinate reference system is used (its area of use, with 5% to spare).
- The video was recorded with HyperSmooth on, which crops and warps every frame: the frames are fine to look at, not to measure in. (a warning, not an error)
- At the recording's top speed the camera took its frames further apart than
frame_spacing_m, so the spacing cannot be met there. (a warning, not an error) frame_spacing_m, when set, is a number from 0.5 to 100.
Coordinate reference system#
The camera's GPS is latitude and longitude. Create the dataset in a coordinate reference system used where you recorded: Irish Transverse Mercator in Ireland, RD New in the Netherlands. A recording made outside it is refused.
Ingest parameters#
| Key | Required | Type | Meaning |
|---|---|---|---|
anonymisation | yes | string — recognised: already_anonymised, auto_anonymise | Compared exactly: auto_anonymise blurs the frames we take, already_anonymised marks them as blurred already. There is no Ignore — these are pictures of people and places along a public line. |
frame_spacing_m | no | number | How far apart, in metres along the track, the frames we take are: 5 when not set, from 0.5 to 100. A spacing shorter than the train travels between two video frames cannot be met there. Default: 5.0. |
What you get back#
- A frame every
frame_spacing_mmetres along the track, placed where it was taken and turned the way the camera looked. None where the camera stood still. - The frames blurred, when
anonymisationisauto_anonymise.
Common failures#
| Symptom | Cause |
|---|---|
| "No GoPro video found" | The files were renamed; upload them under the camera's names |
| "chapter(s) … are missing" | A long recording's later chapters were not uploaded |
| "no GoPro settings" or "no telemetry track" | The file was exported from an editor; upload the camera's own file |
| "no GPS positions" | GPS was off in the camera's preferences |
| "the track lies … outside" | The dataset was created in a coordinate reference system for another area |