The Ultimate Cycling Software
Download the latest executable jar file (gps-overlay-on-video.jar) from here.
It requires to have a java
installation to run the application as follows:
java --add-opens java.desktop/javax.swing.plaf.basic=ALL-UNNAMED -jar gps-overlay-on-video.jar
There are other options to run the application see How to run it section.
When running make sure to use 64-bit java JDK/JRE (no video binaries included for 32-bit).
The idea came after I bought a GoPro camera and started to record some of my rides with the bicycle which were also tracked with a GPS device. For tracking the rides I was using the Strava application on my phone or a Garmin Edge 510. After watching the videos I was asked why I'm not showing the speed and altitude information overlaid onto video? Cool, great idea, I wanted to add all kind of telemetry data acquired via the GPS onto the video, but couldn't find a software for it, running on my Mac. So I decided the write one :) The generated video is able to show the current speed or the actual elevation information, eventually the grade of the slope when climbing a steeper section or the current heart rate zone. The main focus is on cycling videos, but with small effort, different gauge templates it is easy to create dashboard for different type of activities.
Example of videos generated with the tool, links to youtube:
Screenshot of the tool:
The released packages are published regularly here. On windows, you need to append .cmd
extension.
The easiest way to run the application having just java
installed:
run.sh
The script will download the latest version published on github and will run it.
Small list of wishes to achieve:
All the information is extracted from the gps data, since mainly the coordinates and timestamps are known, it is easy to calculate
Telemetry data sample collected with a Garmin device (Edge 820):
<trkpt lat="47.1512900" lon="8.7887940">
<ele>902.4</ele>
<time>2017-09-24T06:10:53Z</time>
<extensions>
<power>205</power>
<gpxtpx:TrackPointExtension>
<gpxtpx:atemp>8</gpxtpx:atemp>
<gpxtpx:hr>160</gpxtpx:hr>
<gpxtpx:cad>90</gpxtpx:cad>
</gpxtpx:TrackPointExtension>
</extensions>
</trkpt>
The application is using libraries and images created by other people or organizations:
Useful links and information
After synchronizing the video stream with the gps track (through the shift parameter) everything is prepared to generate a new video:
And here it is :) the first video generated with the software (Zugerberg Classic):
Besides the basic gauge types (speed, cadence, etc.) showing the current value so called chart types are introduced as well. The charts are showing all the data (for example an elevation chart) and the current value.
The very early drafts on the paper, how it started: