View on GitHub Downloads

GPX Animator

Advanced GPX to Video convertor

GPX Animator

Introduction

GPX Animator generates video from GPX files.

Features

Roadmap

Version 1.6 of GPX Animator will hopefully be released before X-mas 2020. Our plan is to implement the following new features:

There are much more ideas in the backlog. We would like to implement them in future versions of GPX Animator and plan to release a new version every few months. You can check them out in our GitHub Repository.

Downloads

Latest Stable Version

It is recommended, to download the latest stable version. As of today, this is v1.5.2, released on August 21st, 2020. This is a bugfix release:

Important information for Windows and macOS users: The installer is not signed. If you start the installation, you'll get a warning, but you can go over it and continue the installation. GPX Animator is open source and free to use, we don't earn money with it and thus can't afford to pay the yearly fee of round about € 270 (for Windows) and € 100 (for macOS) for the code signing certificate! If you know a better solution, please let us know. Thank you very much for your understanding.



ej-technologies provides us a free license for Install4J. Thank you very much for your support!

Basic usage

GPX Animator can be used in two ways: Either with a GUI (Graphical User Interface), or via CLI (Command Line Interface). Using the GUI is highly recommended for end-users, while CLI usage is perfect for automatization.

GUI usage

If you have used the installer for Windows, macOS, or Linux, you will find a program icon in your application starter menu, which you can click to start GPX Animator. For the OS independent Java Archive, please use the command line to start the GUI.

CLI usage

GPX Animator needs at least Java 11 or newer! We suggest to use AdoptOpenJDK, but any other distribution should work, too.

For default GUI run:

java -jar gpx-animator-1.5.2-all.jar

For program help run:

java -jar gpx-animator-1.5.2-all.jar --help

For direct rendering run:

java -jar gpx-animator-1.5.2-all.jar --input track.gpx

Command line parameters

--attribution <text>
map attribution text; %MAP_ATTRIBUTION% placeholder is replaced by attribution of selected pre-defined map (only from GUI); default:
Created by %APPNAME_VERSION%
%MAP_ATTRIBUTION%
--background-map-visibility <visibility>
opacity of the background map from 0.0 to 1.0; default 0.5
--color <color>
track color in #RRGGBB representation; can be specified multiple times if multiple tracks are provided; default some nice color :-)
--flashback-color <ARGBcolor>
transition color between non-idle parts; default opaque white - #ffffffff
--flashback-duration <duration>
time of the idle-skipping flashback effect in milliseconds; default 250
--font-size <size>
text font size; set to 0 for no text; default 12
--forced-point-time-interval <milliseconds>
interval between adjanced GPS points in milliseconds - useful for GPX files with missing point time information; if specified then time offset must be set representing absolute; empty for no forcing; can be specified multiple times if multiple tracks are provided
--fps <fps>
frames per second; default 30.0
--gui
show GUI; default if no argument is specified
--height <height>
video height in pixels; if unspecified, it is derived from width, GPX bounding box and margin
--help
list of command line parameters, including description (same as here)
--input <input>
input GPX filename; can be specified multiple times if multiple tracks are provided
--track-icon <trackIcon>
enables an icon that replaces the standard circle of the current position (valid values: Airplane, Bicycle, Bus, Car, Jogging, Riding, Sailing, Ship, Train, Tramway, Trekking); can be specified multiple times if multiple tracks are provided
--label <label>
text displayed next to marker; can be specified multiple times if multiple tracks are provided
--line-width <width>
track line width in pixels; can be specified multiple times if multiple tracks are provided; default 2.0
--margin <margin>
margin in pixels; default 20
--marker-size <size>
marker size in pixels; default 8.0
--max-lat <latitude>
maximal latitude; leave empty if it should be automatically computed from the GPX tracks
--max-lon <longitude>
maximal longitude; leave empty if it should be automatically computed from the GPX tracks
--min-lat <latitude>
minimal latitude; leave empty if it should be automatically computed from the GPX tracks
--min-lon <longitude>
minimal longitude; leave empty if it should be automatically computed from the GPX tracks
--output <output>
filename for generated video or filename template for saved image frames where %06d will be replaced by frame sequence number; default /Users/mcpringle/tmp/GPX-Animation.mp4
--photo-time <milliseconds>
the amount of time, a photo should be shown above the map; default 3000
--photo-dir <directory>
a directory containing photos to be added to the animation (must contain EXIF information with date and time of photo taken)
--skip-idle
idle-skipping flashback effect duration in milliseconds; set to empty for no flashback; default true
--speedup <speedup>
speed multiplication of the real time; complementary to specifying total time; default 1000.0
--tail-duration <time>
highlighted tail length in real time milliseconds; default 3600000
--tail-color <tail-color>
highlighted tail color; default java.awt.Color[r=0,g=0,b=0]
--time-offset <milliseconds>
time offset for track in milliseconds; can be specified multiple times if multiple tracks are provided
--tms-url-template <template>
slippymap (TMS) URL template for background map where {x}, {y} and {zoom} placeholders will be replaced; for example use http://tile.openstreetmap.org/{zoom}/{x}/{y}.png for OpenStreetMap
--total-time <time>
total length of video in milliseconds; complementary to speedup
--waypoint-size <size>
waypoint size in pixels; for no waypoints specify 0; default 6.0
--width <width>
video width in pixels; if not specified but zoom is specified, then computed from GPX bounding box and margin, otherwise 800; default (800)
--zoom <zoom>
map zoom typically from 1 to 18; if not specified and TMS URL Template (Background Map) is specified then it is computed from width

FAQ

Application is crashing with java.lang.OutOfMemoryError: Java heap space

Increase java heap memory: java -Xmx1024m -jar gpx-animator-1.5.2-all.jar. If the problem persists, try higher value or check if your GPX trace doesn't cover too big area. If it does then try to specify lower zoom, width and/or height.

Does it run on Linux, Windows, WhateverOS?

Application will run on any platform where you can run Java.

My GPX is missing point timestamps

No problem. Add --forced-point-time-interval option.

Video is very short or long

Fine-tune speedup or specify exact total time in seconds.

The UI is too small on a high DPI screen

Some (older) Java versions have problems with the resolution of a high DPI screen. Until we find a solution to do it programmatically, you can force Java to double the size of the UI using this command:

GDK_SCALE=2 java -jar gpx-animator-1.5.2-all.jar

Error While Rendering - Invalid frame size (0x0)

A GPX file is like a container and can contain a lot of different information. GPX Animator needs track data to work properly. If you get this error message, it is likely that your file does not contain a track. Maybe it contains just waypoints and no track information. The next version of GPX Animator will show a much better error message (The GPX file "foobar.gpx" does not contain valid track data!).

I have some other problem

Feel free to open an issue in the GitHub Issue Tracker (highly preferred) or write us at support@gpx-animator.app.

Demos

Tutorials

Changelog

https://github.com/zdila/gpx-animator/blob/master/CHANGELOG.md