Extracting GoPro GPS and other Telemetry Data

Lucas Suryana
5 min readNov 14, 2019

With its application in GIS

Every time I watch GoPro video on YouTube showing the telemetry data like speed, position, longitude, latitude, etc. (see the video below) it always raises the question “How to extract those data from GoPro to .csv file?”

GoPro Telemetry Data

Actually, there is a website that you can use to extract the telemetry data ( https://goprotelemetryextractor.com/free/). But, in this article, I’ll share with you the manual procedure on how to extract the telemetry data from the video, which is recorded by GoPro (GoPro Hero 7).

This article also relates to my last article about road crack detection as the extracted GPS location will point to the road crack location on the map. I don’t create the procedures by myself, as I only summarize references I found into simple steps to follow.

The links below are the references I found:
Link 1
Link 2

Step 1
Download FFmpeg (For Windows 10) -> Extract the file -> Rename it (FFmpeg-20191111–20c5f4d-win64-static to FFmpeg) -> Save the folder on Documents.

FFmpeg is a framework that will extract the telemetry data from .mp4 videos

Step 2
Open C:\Users\lesuryana\Documents\ffmpeg\bin (adjust with your computer name) and copy the videos you had recorded into the bin folder.

Open bin folder and save your .mp4 there, make sure the video has GPS location.

Step 3
Type cmd on the folder location until it opens a command prompt window. Furthermore, type and run the command below:

ffmpeg -y -i xxxx.MP4 -codec copy -map 0:3 -f rawvideo xxxx.bin

*) fill the xxxx with your video’s name

If you do that properly, you will find a .bin file after the command executed.

Step 4
We will use a library created by Juan Irache to transform the .bin into .csv. But, because it is written in the Go language, we need to install the Go language first.

Download GoLang (For Windows 10) and install it.

Step 5
After the installation process, open C:\Go\src and create a new folder with the name github.com

create a new folder with the name github.com

Inside the github.com folder, create a new folder with the name JuanIrache.

Step 6
Open JuanIrache repository on https://github.com/JuanIrache/gopro-utils and download it as a zip.

Unzip the file on your download folder, and rename it (gopro-utils-master to gopro-utils). Save in C:\Go\src\github.com\JuanIrache.

Step 7
Open C:\Go\src\github.com\JuanIrache\gopro-utils\bin\gpmd2csv and you will find a file named gpmd2csv.go

.go file is similar to .py file in Python

Type cmd on the folder location until it opens a command prompt window. Furthermore, type and run the command below:

go build

After you run the command, it will create a gpmd2csv.exe

Step 8
For the last step, copy the .bin you created on Step 3 into C:\Go\src\github.com\JuanIrache\gopro-utils\bin\gpmd2csv

Type cmd on the folder location until it opens a command prompt window. Furthermore, type and run the command below:

gpmd2csv -i GH020095.bin -o GOPR0001.csv

If you do that properly, you will find four .csv files:
- GOPRO001-accl.csv
- GOPRO001-gps.csv
- GOPRO001-gyro.csv
- GOPRO001-temp.csv

GPS-Gyroscope Data Application with GIS

After we get the telemetry data, we will try to analyze the data with the help of the GIS application. Before that, we need to clean and merge some of the data.

Cleaning process
Merging process

With the new acquired GPS and Gyroscope data, we will try to analyze with a GIS application, and the results are shown by the figures below.

Speed analysis figure (m/s)
Yaw analysis figure

To get more understanding about what yaw is, we could see the picture below. Yaw is a movement around the z-axis, a roll is a movement around the x-axis, and a pitch is a movement around the y-axis.

Pitch, Roll, and Yaw figure

By understanding what yaw is, from the Yaw analysis figure, we could see that there is an abnormality on a point where suddenly the yaw value grows fast. By referring back to the 2nd videos above (watch in the 1:34 minute -> 94105 milliseconds = 94 seconds), we could see that there is a sudden change in the GoPro position causing the sudden growth of yaw value.

The combination of tabular data, GIS application, and video will help us to see what others can't.

Try it live here!

#Location Analytics
#ArcGIS

--

--

Lucas Suryana

PhD Student @TU Delft — Developing a safer and a more acountable automated vehicle