Newest changes are always in README.md
- 0.103.0 [Feature] Initial Windows Support! See Windows Installation Instructions.
- 0.102.0 [Feature] Support for alternate GoPro Max ORIN. Indicate when no GPS information found in file. Thanks @xiaoxin01, @ilisparrow
- 0.101.0 [Fix] Fix error when loading FIT files that had GPS Accuracy information. Thanks @rpellerin
- 0.100.0 [Breaking] Don't load GRAV/ACCL/CORI by default - its slow
- [Breaking] Use EXTEND mode for GPX, so only add in additional data items. Use
--gpx-merge OVERWRITE
to restore previous behaviour. Previously it was all-or-none for GPX, now can choose to add hr/cad/power to GPX track from GoPro.
- [Breaking] Use EXTEND mode for GPX, so only add in additional data items. Use
- 0.99.0 [Internal Changes Only] No user-visible changes expected.
- 0.98.0 [Feature] Add configurable background colour with
--bg rgba
thanks to @mishuha in discussion time4tea#120 for the concept. - 0.97.0 [Feature] Add new map style "local" - which will connect to a tileserver running locally on port 8000. This may be useful if you want to use a completely custom map - like a hand drawn one.
- For more details see: time4tea#132 Thanks to @mattghub1 for the concept.
- 0.96.0 [Feature] Hopefully add support for older gopro files when joining. #129 Thanks @FFMbyBicycle for raising and some example code.
- 0.95.0 [Feature] Add api key support for geocode.xyz - #117 Thanks @mishuha for raising.
- 0.94.0 [Change] Update docker image to python3.11/ffmpeg 6.0
- 0.93.0 [Feature] Support for fully gpu decoding/overlay/encoding. Huge performance increase now possible. It takes a bit of work, but now can render at 12x realtime. See docs/bin/PERFORMANCE_GUIDE.md
- [Breaking] Remove support for
--output-size
as it didn't really work properly anyway.
- [Breaking] Remove support for
- 0.92.0 [Feature]
--double-buffer
- EXPERIMENTAL double-buffering. Potentially much faster rendering, but may not work on all architectures. Speed improvements highly dependent onffmpeg
performance. Likely much faster when using--generate overlay
. Feedback welcomed. - 0.91.0 [Fix] Ignore FIT data items that don't have a GPS location. #122 Thanks @patkoscsaba for raising.
- 0.90.0 [Change]
cairo-circuit
now draws much more quickly. - [Change] Map rendering caches tile images more efficiently, so draws more quickly.
- 0.89.0 [Feature] New component
cairo-gauge-round-annotated
- A bit like a car speedometer - See docs docs/xml/examples/06-cairo-gauge-round-annotated - 0.88.0 [Fix] Journey Map broke when no there were no locked GPS points in the movie.
- Thanks @shahargli for reporting
- 0.87.0 [Fix/Breaking Possibly]
chart
- discovered a few bugs, now fixed. Removedalpha
, instead use alpha of each colour. - 0.86.0 [Feature] New component
cairo-gauge-marker
- a nice clean gauge component, with a marker for the current value.. See docs docs/xml/examples/06-cairo-gauge-marker - 0.85.0 [Feature/Breaking Possibly] Add validation to attributes in layout files. This may cause some custom layouts to break! - But they wouldn't have been working as intended.
- [Change/Breaking] Change some
zone-bar
attribute names, aiming for standardisation - [Change/Breaking] Change some
cairo-circuit-map
attribute names, aiming for standardisation
- [Change/Breaking] Change some
- 0.84.0 [Feature] New component
zone-bar
- a 3-zone bar control that can be used for HR/Cadence/Power zones. See docs in docs/xml/examples/07-zone-bar- Many thanks to @jchinte for contributing!
- 0.83.0 [Change] No longer require --overlay-size when using --use-gpx-only, but supplying input video
- [Fix] Give better error message when video and GPX don't overlap in time, but told to sync
- Thanks to @mfloryan for reporting both of these
- 0.82.0 [Change] Support for changing units in layouts from the command line. Use
--units-speed
etc to control. Examples are in docs/bin- Thanks to @matzeruegge for the suggestion.
- 0.81.0 [Fix] gopro-rename was broken when using
--dirs
- added tests so hopefully won't reoccur. Thanks to matzeruegge for reporting - 0.80.0 [Fix] Use speeds from GPX file, in preference to GoPro file, when using GPX and GoPro together.
- [Change] Bump Required python version to 3.10
- 0.79.0 [Fix] Changed GPS filtering reporting, it was a bit off.
- 0.78.0 [Fix] Gradient calculation had become disabled.
- [Feature] Can now filter GPS points by max DOP
--gps-dop-max
- [Feature] Can now filter GPS points by max Speed
--gps-speed-max
--gps-speed-max-units
- [Feature] Can now filter GPS points by bounding box - Useful if a few points claim to be locked, but are far away. Load GPX file into mapping software to see bounding box easily, for now.
--gps-bbox-lon-lat
- [Change] Outputs except for generated files are now to stderr rather than stdout
- [Feature]
gopro-to-csv.py
andgopro-to-gpx.py
now support--only-locked
and--every
to limit number of points (also GPS point filters, as above) - [Change] Change in the way chart handles missing values - stops chart going to 0.
- Updated various library dependency versions.
- [Feature] Can now filter GPS points by max DOP
- 0.77.0 [Change] Disable speed and other calculations when GPS is not locked - stops unbelievable values
- [Change] changes to GPS parsing, should make detection of GPS lock more accurate (some 'not locked' values used to be included) still not perfect h/t @falumas
- [Change] add new widget "gps-lock-icon" at top of screen to show GPS lock - hopefully not too intrusive - can switch off with
--exclude
- [Change] interpolate GPX/FIT tracks so they update every 0.1s - h/t @0x10
- 0.76.0 [New Feature] New widget - "cairo_circuit_map" - Much nicer looking circuit map, and first widget that uses new optional "cairo" library.
- See examples Cairo Circuit Map
- 0.75.0 Fixing some issues with True values in use of supplied or calculated values
- Thanks to @Timmy-485 for data files showing the issue.
- 0.74.0 Experimental Support for speed from GPX files - using Garmin Extension h/t @Timmy-485
- Fix bug introduced in 0.73.0 to do with parsing map api keys.
- 0.73.0 Support
--cache-dir
and--config-dir
which should make use of profiles and map caches easier when using Docker - 0.72.0 Fix #42 - Data out of sequence when using joined files. h/t @IbnGit
- 0.71.0 Fix #84 - Error introduced when updating to use pathlib - Added test so shouldn't reoccur. h/t @j0ker-npw
- 0.70.0 Using GPX/FIT files - file extension is now case insensitive - #83 - h/t @j0ker-npw
- 0.69.0
- New Program:- gopro-layout.py
- This should help if you want to create your own layouts. Just point this to a layout file, and it will render a frame each time the layout file changes, so you can see your changes "live"
- Some layout examples are now in examples/layout
- Minor tweaks to
text
,metric
andchart
to control outline width and colour
- New widget type
circuit_map
shows a simple plot of the path, but no map graphics. See docs/xml/examples/06-circuit-map
- New Program:- gopro-layout.py
- 0.68.0 EXPERIMENTAL support for FIT files - Use just like a GPX file, either supplementing the GoPro or by itself.
- Not expecting any major issues, with FIT support, but I don't have a huge number of test files.
- 0.67.0 EXPERIMENTAL support for parsing camera orientation. This means it's now possible to show pitch/roll/yaw.
- But I'm not 100% on the maths, particularly around the rotation axes - so maybe it's not quite right.
- Use
ori.pich
ori.roll
ori.yaw
in widgets/metrics. They have a unit of radians - Feedback welcomed!
- 0.66.0 Fix #78 - Crash when GPS5 packets have zero entries.
- Add accelerometer entries to csv output
- 0.65.0 Parse "power" from GPX files. Thanks to @kfhdk
- See docs/xml/examples/07-metrics for examples of how to use
- Also example layout in layouts/power-1920x1080.xml
- 0.64.0 Bump version only - no changes
- Docker Image now available! - Thanks to @GitFun4All for the suggestion and example code
- 0.63.0 Bump version only - no changes
- 0.62.0 Bump version only - no changes
- 0.61.0 Update to Pillow version - should make the program run faster due to improvements in font rendering performance
- 0.60.0 Possible fix for error using --gpx-only in timezones that are ahead of UTC
- 0.59.0 EXPERIMENTAL support for creating dashboards without a GoPro file! - Just uses GPX. use
--gpx-only
- See examples in docs/bin- Huge thanks to @ptanov for code and others for suggestions!
- 0.58.0 Chart component now has configurable colours and size - see docs/xml/examples/07-chart
- 0.57.0 Experimental support for non-real-time (timelapse/timewarp) videos
- Thanks to @ptanov
- 0.56.0 Remove possible divide by zero error - only likely in timewarp/timelapse videos - I think
- Minor changes to ffmpeg code, should have no visible effect
- 0.55.0 Huge improvement to View performance - used in chart - now charts with short windows are useable.
- 0.54.0 Fix #60 h/t @remintz
- Some (older?) camera's don't have ORIN in ACCL and GYRO streams, so use a default
- 0.53.0 New feature for a frame - fade out to edge - see docs - thanks @ptanov
- Fix to GPX file loading - also, thanks @ptanov
- 0.52.0 Update gopro-to-gpx.py to allow smaller GPX files (see help)
- 0.51.0 Fix #52 h/t @danfossi
- Support for Hero 8 Black ORIN spec zxY
- 0.50.0 Print installed version at program startup
- 0.49.0 Parsing & Display of Acceleration Information!
- Major new functionality to parse and display acceleration data
- Use metrics
accl.x
accl.y
andaccl.z
in any widget or metric text - New component
bar
- see bar docs - Updated chart can now chart (probably) any metric - see chart docs
- 0.48.0 Fix #48 - h/t @osresearch
- allow 'km' units where appropriate
- 0.47.0 Fix #47 - h/t @osresearch
- 0.46.0 New component
compass-arrow
- see layout docs examples- progress on support of time-lapse and time-warp files, but they don't work properly yet
- built-in layout for 2.7k files
- 0.45.0 New Program
gopro-rename.py
- turn idiosyncratically named gopro files GX0100123.MP4 into 20220405-123416-london-england.MP4 using either provided description,- or looks up the location from the GPS, and makes file name from that.
- uses the GPS timestamp to determine the time of the file.
- now gopro files will sort properly in your file viewer
- also works around gopro camera drift, clock is always wrong.
- can rename whole folders of files
- 0.44.0 Add PR#44 for extracting GPMF to ndjson. Thanks @gregbaker
- 0.43.0 Support for Geoapify maps, as well as existing Thunderforest and OSM
- Small improvements in API Key handling. See map styles docs
- 0.42.0 Experimental threading mode
--thread
which just sends data to ffmpeg on a background thread.- The result of lots of experimentation on timing, but basically if the GPU is maxed out, that's a limiting factor.
- This gets a marginal performance gain of about 0.2frames/s for me. Use
nvtop
to check the "ENC" load on the GPU. - Demonstrate that on a
null
ffmpeg, we can generate about 60 overlay frames a second, or 6 seconds/second
- 0.41.0 Allow alpha channel in colours everywhere. This means all text, backgrounds etc can now specify alpha component for colours
- See docs for text component for example
- 0.40.0 BIG CHANGE - Hopefully align metadata with video much better. Please please raise issues if there are problems.
- This has been tested with GOPRO Hero 9 and GOPRO Hero 7 - which use two different timing schemes, and appears to work.
- This changes the way that GPX metadata is aligned with the track, which should also make it better
- This might change how points with large DOP are rendered... feedback welcomed about how to do this best
- 0.39.0 Fix #29
- 0.38.0 Fix #30 thanks @tve
- 0.37.0
- Added new component "Moving Journey Map", which displays the whole journey on a moving map. See docs
- Possible fix for feature request
- Added new component "Moving Journey Map", which displays the whole journey on a moving map. See docs
- 0.36.0
- Fix for
gopro-join.py
when MPEG files are in current directory. - Issue #24
- Fix for
- 0.35.0
- Add
rotate
toasi
component. see docs - Some refactoring (should have no visible effect)
- Add
- 0.34.0
- Add new component
asi
- an Airspeed Indicator - see docs
- Add new component
- 0.33.0
- Add experimental support for 'ffmpeg profiles' as documented above
- 0.32.0
- Add option to disable rotation in moving map (thanks @SECtim)
- 0.31.0
- (Change in behaviour) Use input file framerate as output file framerate. This may make output files bigger.
- A more comprehensive mechanism to control ffmpeg options is planned for a later release
- (Change in behaviour) Use input file framerate as output file framerate. This may make output files bigger.
- 0.30.0
- Attempt to fix character encoding issues on Mac (can't test, as I don't have a Mac)
- 0.29.0
- Add
compass
component (experimental!) - Draws a simple compass - Add
frame
component - Draws a clipping maybe-rounded box to contain other components. - Add initial docs for XML layout
- Add
- 0.28.0
- Only rerender moving map if it has moved since last frame - will be much quicker under certain circumstances
- Refactorings in how map border/opacity is rendered (should have no visible effect, maybe marginally faster)
- 0.27.0
- Fix Issue #20 Minor improvement in GPX parsing. Hopefully more tolerant of GPX files that don't contain hr/cadence/temp extensions
- 0.26.0
- 0.25.0
- (Change in behaviour) - Will now use speed from datasource, in preference to calculated. This should make it much more stable, if the datasource supplies it. (GoPro does, GPX not)
- 0.24.0
- Big internal restructuring of metadata parsing. Will make it easier to import GYRO/ACCL data soon. Incidentally, should be a bit faster.
- Hopefully no externally visible effects.
- 0.23.0
- Rename --no-overlay to --overlay-only as it was too confusing
- 0.22.0
- Filter points that have DOP too large.
- 0.21.0
- Built-in support for 4k videos, with a supporting overlay. Feedback welcomed.
- Use --overlay-size with --layout xml to use custom overlay sizes and layouts
- Minor Bugfixes
- 0.20.0
- Add "opacity" and "corner_radius" to maps xml components (H/T @KyleGW)
- New Utility: gopro-cut.py - Extract a section of a GoPro recording, with metadata
- 0.19.0
- Load custom XML layouts correctly on command line.
- 0.18.0
- BUGFIX: pypi distribution was still broken. :-(
- 0.17.0
- BUGFIX: pypi distribution was broken. :-(
- 0.16.0
- Add support for degrees F for temp.
- 0.15.0
- XML Layouts improved. Probably good/stable enough to make custom layouts
- Include/Exclude named components using command line
- 0.14.0
- Fix for some thunderforest themes (H/T @KyleGW)
- XML layout support for vertical and colour text
- 0.13.0
- Improved XML layout - text/metrics/unit conversions
- 0.12.0
- New Utility: gopro-join.py - Join multiple GoPro files from a single session together
- Improve Parsing Speed for GoPro Metadata
- 0.11.0
- Allow XML layout definitions