on 04-10-2017 02:01 PM - last edited a month ago
While the Quick software can display some of the data in the "gauges" format, Hero5's video files have much more to it, many more sensors and detailed data:
~400 Hz 3-axis gyro readings
~200 Hz 3-axis accelerometer readings
~18 Hz GPS position (lat/lon/alt/spd)
1 Hz GPS timestamps
1 Hz GPS accuracy (cm) and fix (2d/3d)
1 Hz temperature of camera
Gauges are also limited to H5 Black files recorded with the GPS on, but the fact is that the sensors record data even when the GPS is off, even in the H5 Session.
EDIT 2019: The rest of this post is useful for geeks, but if you just want to convert your data, you can use the new telemetry extraction tool: https://tailorandwayne.com/gopro-telemetry-extractor/
EDIT: The rest of this post discusses how to manually retrieve the data and can bus useful for customising and improving the results, but here's a package that lets Windows users extract the sensor data to spreadsheet format (csv) by just dropping the video files on the GPMD2CSV.bat file: http://tailorandwayne.com/GPMD2CSV.zip It should work well with both H5 cameras on all resolutions and framerates. Otherwise, let me know.
EDIT 2: You can contribute to this tool here: https://github.com/JuanIrache/gopro-utils
EDIT 3: Since many people want to use the data with other software, the GPMD2CSV tool now exports to GPX, KML and JSON formats too. This was possible thanks to: https://github.com/KonradIT/gopro-utils I have not tested it with many cameras, so let me know if anything needs to be fixed.
In these two threads we discussed means of extracting the data:
Suggestions like using RaceRender ( http://racerender.com/RR3/Features.html ) o Dashware ( http://www.dashware.net/ ) came up. But most solutions provided incomplete or inaccurate data, some times nothing at all.
This is the most complete solution I have found so far:
Here's a detailed tutorial on how to extract metadata from the Hero5 Session (and the H5 Black with a small tweak). Most video modes of the session record gyroscope, accelerometer and temperature data. These can be useful for visualising info or tweaking the image, for example to stabilise in post-production. Theoretically, the latest firmware update added ISO and shutter-speed metadata. BUT...
For me, firmware v2.00 broke all the metadata, and other functions such as manual shutter speed for video, iso modes, external mic... I had to revert back to v1.50. Edit: I still can't read metadata from v2.00, So if you are interested in this, don't update your camera just yet. Firmware v2.00 and beyond can be extracted with the latest versions of the tools.
- Note2: I learnt all these steps through my own experimentation. They are for advanced users and there might be more professional ways of doing this. This workflow is slow and won't suit most users' needs.
- Note3: This guide is for Windows but I think all the steps can be done in other OSs.
- Note4: I take the time to explain this because I want more people to start playing with these data and come up with new ways of extracting it and displaying it. Please share your ideas too.
- Edit: These instructions are now pretty outdated. Most of the work can be done by building the gpmd2csv file in my repo: https://github.com/JuanIrache/gopro-utils But some of the instructions still apply if you want to learn to copy the GitHub repo, its dependencies, build the executable and so on.
Most of the work necessary to extract the data has been done by stilldavid. https://github.com/stilldavid/gopro-utils
1: Download ffmpeg and uncompress it somewhere in your hard drive: https://ffmpeg.org/
2: Download and install Go Programming Language: https://golang.org/ (don't worry, you don't need to know coding to get the data out). Make sure to download a Windows build if you are on Windows
3: Create a folder in %USERPROFILE%\go\src\github.com\stilldavid\ (replace %USERPROFILE% with you user profile folder, usually something like c:\Users\yourName\) You can get more help on this here: https://golang.org/doc/
4: Download the gopro-utils from https://github.com/stilldavid/gopro-utils by clicking on the green "Clone or download" button. Download as zip. (stilldavid's version of the tools tend to be outdated. I try to keep them working here https://github.com/JuanIrache/gopro-utils ) Edit: , you can just "git clone" the repo.
5: Unzip what you just downloaded, open the new folder and copy its content (it's also a folder named "gopro-utils-master") in the \stilldavid\ folder that you just created.
6: Remove the "-master" part from the folder name, so that it becomes "gopro-utils"
7: Like before, create a folder called %USERPROFILE%\go\src\github.com\paulmach\ and repeat steps 4, 5 and 6 with these projects that gopro-utils needs to work: https://github.com/paulmach/go.geo and https://github.com/paulmach/go.geojson
- Note5: If you just want to extract GPS data the way stilldavid conceived it, you're almost set up. I modified one of the files so that the Gyro, Accel and Temp information can be extracted in spreadsheet format.
8: Go to your folder \go\src\github.com\stilldavid\gopro-utils\bin\gpmd
Edit: Instead, you can just build the file from my repo: https://github.com/JuanIrache/gopro-utils/tree/master/bin/gpmd2csv
- Note6: If you own a H5 Black (I don't), you can modify my file so that it also saves GPS data by uncommenting the GPS parts, that is, removing all the /* and */ lines and then saving the file. More data can be retrieved if you look into the gopro-utils code.
9: Still in the \gpmdinfo\ folder, unselect any file and do SHIFT+RIGHT MOUSE CLICK and select "Open command window here"
10: In the command prompt, write "go build", withouth the quotes and press ENTER. This should create a gpmdinfo.exe file. If you did it all right, you won't need to repeat the previous steps.
-- Repeat from here for additional video files
11: Copy your gopro video file and open the \ffmpeg\ folder that you created in step 1. There, open the folder called \bin\ and paste your video file
12: Open a command prompt like in step 9 and type: "ffmpeg -y -i filename.MP4 -codec copy -map 0:3 -f rawvideo filename.bin" without quotes, where filename must be replaced with the name of your file. This will produce a .bin file. Edit: If framerate is higher than 60fps, replace 0:3 with 0:2
13: Cut both the .bin and your .mp4 video files and go back to the \gpmdinfo\ folder of step 8. Paste them.
14: Open a command prompt and type: "gpmdinfo -i filename.bin". This will create 3 files accl.csv, gyro.csv and temp.csv. These are the data you were after. Open them with Excel or any similar software or create whatever you want with them. Copy them somewhere safe with the original video file, as the next file you process will overwrite them.
One simple thing you can do with all this is see the G-forces that the camera or yourself experienced during the shot.
I have also been playing with the data and it is really useful for stabilising the image, for example, without having to enable that setting in the camera and, therefore, without losing quality or field of view. Data is being recorded even in 4K, which means we can stabilise 4k footage! Will share my work on another post in this group.
Unfortunately, it seems like nothing is recorded on framerates above 60fps. But I don't see why that wouldn't come in a future firmware update, if people start using these features. Edit: We can also stabilise high framerate footage.
on 04-15-2017 01:05 PM
Thank you for taking the time to put this together. This group will grow, just need to keep posting the link. Maybe make a YouTube video and mention the group and include the link. I'd love to see some input from people like minded.
on 04-23-2017 09:26 AM
Using Dashboard, in My documents I obtained a CSV file with all metadata registred by the camera (saved in My documents-dashboard projetcs), ¿it is possible to modify this base data in a more standard way to convert to a kml file with tools such as http://www.convertcsv.com/csv-to-kml.htm ?
When I try, the onverted kml file is meaninglees, I guess the original CSV file has to be "trimmed" prior convert, but I wonder how
on 04-23-2017 09:44 AM
on 04-23-2017 03:38 PM
Is that data that you put into Google earth public? Would be cool to see it and share it so that more people use these tools
on 04-23-2017 04:09 PM
It´s very easy to create the kml file (a simple XML based in the gps file extracted with the superb software from stilldavid)then convert into kml, the kml file can be opened from any machine with Google Earth installed.
I dont think that upload to public in google Earth layer because trere are too many markers (more tan 6.000 for a 5 min video), much better to offer the kml file to donnload, in the future I may try to take off some thousands of markers, I guess there are 60 per second of video, wit one marker every 30 seconds woul be fine, it seems easy to do with python on the csv file.
There are many interesting aplications, I live in the border of Chile-Perú and Bolivia, and there are feequent incidents with police or military crossing the line, just now there are one very serious incident with bolivian military who crossed the border, geo referenced video over Google earth would be fine to prove the exact location of people involved, same for police operations and such kind of things
on 05-07-2017 05:41 AM
Thanks for sorting out a lot of things, I've been following this topic for a few months already and although working it is a bit time consuming to get it right.
You may want to take a look at the latest version of dashware http://www.dashware.net/release-notes/
Quote from the release notes:
- Added GoPro HERO5 Black GPS support. Data is now automatically extracted from the .MP4 file and auto-synced with the video.
Please note that dashware is actually owned by GoPro
I can tell you it works great and so much easier!