-
General:
- Camera support:
- insta360 X4, X5: Added support. The multi-track, raw, fish-eye lens video will be split and joined into separate single-track files. This is to be able to display both video tracks in ELAN.
- Hero 13: Clips should now be correctly identetified as to whether they belong to the same recording session or not.
- Mission 1: Note yet tested, but may work already. Sample footage needed to be sure.
- Garmin VIRB: Support is temporarily removed. May return in the future, along with renewed Garmin FIT support.
- Restructure to support upcoming GUI version, which will be parallel to the CLI version.
- Geopackage support. Geo output options now also exports to or updates an existing Geopackage file.
- When locating files the input clip's resolution will be matched. E.g. if the input clip is a low-resolution, proxy file (
.lrv) the corresponding high-resolution clips will be ignored. Note that e.g. the CLIlocatecommand still lists both high and low-resolution clips for a session.
- Camera support:
-
GUI:
- New GUI version. Differs in functionality compared to the CLI version. The CLI vesion has some "low-ish" level file inspection dumping raw data and can locate and list all recording sessions in a specified folder.
-
CLI:
- Many commands have been restructured and paramater names changed or combined. Run
--helpon each command to see what has changed. --video,--gpmfhave been removed and combined into the new parameter--sourcewhich takes any video source.cam2geo: New command for inspecting and exporting geo and IMU data. The difference tocam2eafis that this is for raw output from the camera. Some functionality frominspecthave been moved here and updated.inspect: Now deals more with video/raw telemetry viewing. Options that relate to geo data, including IMU data, has been moved to the newcam2geocommand.inspect: Parameters for specifying whether high or low-resolution clips will be linked in ELAN have been removed. Instead the source clip's resolution will be matched when locating clips.inspect: Dump raw MP4 samples together with sample size and timestamps in companion file (e.g.GoPro METwhich containsGPMFdata)manual: CLI manual is now written in typst. The plain text manual temporarily removed, but will hopefully return after Typst's HTML export is finished.cam2eaf: Support for adding accelerometer and gyroscope as timeseries in ELAN. For GoPro cameras satellite lock level and dilution of precision can be added as well, to e.g. visually identify GPS "quality" issues for important video sections.cam2eaf: Batching removed. May return in the future.
- Many commands have been restructured and paramater names changed or combined. Run
- NEW preliminary test/functionality for insta360
.insvfiles. Only supports geo-referencing ELAN annotations for now (i.e. onlyeaf2geo, notlocate,cam2eafetc), and manually specifying all relevant original clips (only tested with insta360 X4). - Bump
gpmf-rscrate.
- FIX
cam2eafDefault output dir fixed. Now properly defaults to parent dir of specified clip if not specified via--outdir. - FIX
eaf2geoInclude ELAN tier name in KML/GeoJSON file names. - CHANGE
eaf2geoNewgeoshapevariants forpoint-singleandcircle:point-single-mid,point-single-avg,circle-mid,circle-avg. The-midvariants will use the chronological mid-point/s when reducing number of points, whereas the-avgwill use the average of the cluster (old behaviour). The reason being that for a path that is not relatively straight an average may end up outside of the the traversed path which is usually not ideal.circleis the same as usingcircle-mid,point-singleis the same as usingpoint-single-mid. The old behaviour is equal to thecircle-avg, andpoint-single-avgvariants. - Small manual fixes and updates.
- Bumped crate versions.
- FIX [GOPRO] Bump
gpmf-rscrate (now skips MP4/LRV-files with filenames that start with._).
- NEW
plot: export the plot to HTML, PNG, SVG files (--export PATH). - NEW [\GOPRO]
plot: added static line representing ideal thresholds to dilution of precision (--dilution-of-precision, below 5 = good precision) and GPS satellite lock level (--gpsfix, 3 = 3D fix). - NEW
inspectwith--videolists all tracks in the MP4 file. - NEW
inspectwith--samplesprints all raw sample data in the MP4 file (specify track name or ID). Prints warning with confirmation due to large data size. - NEW
inspectwith--dumpsaves all raw sample data in the MP4 file to disk (specify track name or ID). Prints warning with confirmation due to large data size.
- NEW [GOPRO]: determining whether GoPro files are high/low resolution (
.MP4or.LRV) no longer depends on file extension, only video resolution, i.e. you can rename LRV-files to.mp4and GeoELAN will still correctly identify these as low resolution variants. - NEW [GOPRO]
plot: removed filtering plots on GPS satellite lock level and dilution of precision (see below) - NEW [GOPRO]
plot: added satellite lock level/GPS fix as plot option (use-y fixor--y-axis gpsfix) - NEW [GOPRO]
plot: GPS dilution of precision can now be plotted (use-y dopor--y-axis dilution) - NEW: [GOPRO]
cam2eaf: Specify threshold for dilution of precision (--gpsdop). - CHANGE
inspect:--offsetsis no longer connected to--gpmfand can be used for any video (MP4, LRV, GLV, MOV), but requires specifying track name (string) or id (positive integer). Runinspectfirst to get a list of these. - FIX [GOPRO] Fixed GPMF timing errors when merging GoPro MP4-clips that caused timespan overlaps in generated ELAN annotations.
- Bumped updated crates
gpmf-rs,eaf-rs,mp4iter - Various internal changes
plot: Plot data for the entire session (use--session) for both GoPro and VIRB (sensor data, altitude etc), axis titles added, internal fixes.cam2eaf:--batchflag added, allowing batch processing of all recording sessions in--indir.- General: Fixed stalling on older MP4 files and not finding GPMF offsets for Hero 5, and many other internal fixes.
- Merged
gopro2eafandvirb2eafinto the single commandcam2eaf. - New command
plot: rudimentary plotting of sensor data. Leveragesplotly.jsviaplotly. - Many under-the-hood changes, such as better sorting of GoPro clips, independent of GPS and filename.
- Changed repository from https://gitlab.com/rwaai/geoelan to https://github.com/jenslar/geoelan
- Experimental: Possible to use coordinates imported into ELAN via the
--geotieras export source foreaf2geo. gopro2eaf: Low-resolution video supported (.LRV), if found LRV-files are default when linking in ELAN (similar to VIRB GLV). Link high-res video by using--link-high-res- The new
GPS9data will be used for devices that log this (currently only Hero11) - Locating and matching GoPro clips no longer depends on filenames or path:
- MUID (Media Unique ID) or GUMI (Global Unique ID) is used for matching clips in session
- A hash of the partial, "raw" GPMF stream is used to match correspondging high and low-resolution clips
- Sorting clips in chronological order currently depends on GPS. (fallback to filename sorting not yet implemented)
- Note: Due to limited access to various GoPro models, matching and grouping clips may not yet work as expected for Hero 8 - 10.
- Changed or removed command line arguments for some commands
- All internally developed Rust crates are updated and now separately located at https://github.com/jenslar (also specified as source in
Cargo.toml)
- Changed average time to float based calculation for points in
geo::mod::point_cluster_average() - Changed format for EAF default date to comply with
xs:dateTime. - Fixed command line argument bug in command
eaf2geo. - Fixed errors and typos in documentation.
inspect:-vcan now be used for GoPro MP4 files as well with--atomsor--meta(use--gpmffor inspecting GPMF data)
- Support for printing MP4 atom structure, similar to AtomicParsley.
geoelan inspect --video VIDEO.mp4 --atoms - Very rudimentary support for inspecting GoPro JPEG-files (contains GPMF streams)
- Bug and typo fixes
- GoPro Hero 5 Black and later is now supported.
- With the added of GoPro support some commands have been changed and/or tweaked, refer to the manual if GeoELAN no longer works as expected.
- New
eaf2geo --geometryoptioncircle. This mostly a flair/visual option forpoint-single, since the radius and height parameters currently have no connections to logged data or annotation content. - All
geoshapeoptions can have a "height" parameter, which affects KML output. The feature will then "extrude" up, relative to ground, according to set height value. This causes--geometry circleto become a cylinder. - Most backend code has been re-written, including the FIT-crate.
- New GoPro GPMF-crate written from scratch.
- New ELAN/EAF-crate for reading/writing EAF-files.
- New MP4-crate for iterating over atoms in MP4-files.
- Note: None of the crates are yet on crates.io, but will be shortly.