```bash !/bin/bash cat << EOF > gpx.fmt #------------------------------------------------------------------------------ # File: gpx.fmt # # Description: Example ExifTool print format file to generate a GPX track log # # Usage: exiftool -p gpx.fmt -ee3 FILE [...] > out.gpx # # Requires: ExifTool version 10.49 or later # # Revisions: 2010/02/05 - P. Harvey created # 2018/01/04 - PH Added IF to be sure position exists # 2018/01/06 - PH Use DateFmt function instead of -d option # 2019/10/24 - PH Preserve sub-seconds in GPSDateTime value # # Notes: 1) Input file(s) must contain GPSLatitude and GPSLongitude. # 2) The -ee3 option is to extract the full track from video files. # 3) The -fileOrder option may be used to control the order of the # generated track points when processing multiple files. # 4) Coordinates are written at full resolution. To change this, # remove the "#" from the GPSLatitude/Longitude tag names below # and use the -c option to set the desired precision. #------------------------------------------------------------------------------ #[HEAD]<?xml version="1.0" encoding="utf-8"?> #[HEAD]<gpx version="1.0" #[HEAD] creator="ExifTool \$ExifToolVersion" #[HEAD] xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" #[HEAD] xmlns="http://www.topografix.com/GPX/1/0" #[HEAD] xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd"> #[HEAD]<trk> #[HEAD]<number>1</number> #[HEAD]<trkseg> #[IF] \$gpslatitude \$gpslongitude #[BODY]<trkpt lat="\$gpslatitude#" lon="\$gpslongitude#"> #[BODY] <ele>\$gpsaltitude#</ele> #[BODY] <time>\${gpsdatetime#;my (\$ss)=/\.\d+/g;DateFmt("%Y-%m-%dT%H:%M:%SZ");s/Z/\${ss}Z/ if \$ss}</time> #[BODY]</trkpt> #[TAIL]</trkseg> #[TAIL]</trk> #[TAIL]</gpx> EOF for f in *.MP4; do exiftool -m -p gpx.fmt -ee -ext mp4 -w %f.gpx $f mapillary_tools video_process_and_upload $f --geotag_source gpx --geotag_source_path ${f%%.*}.gpx --skip_process_errors done ```