Re: Exporting still image with GPS coordinates in EXIF
on 04-04-2019 05:04 AM
I'm interested in this (but no experience using ffmpeg) but it doesn't look like this is possible. Someone can correct me if I'm wrong, but given that threads on extracting an exact frame number (let alone timestamp) for an original frame show that this isn't simple, finding GPS coordinates based on the individual frame isn't possible directly.
As I understand it, there are no GPS coordinates mapped to individual frames as there would be with a single camera image from a still camera with a gps chip embedding coordinates into the metadata. Instead, GPS tracklogs alongside video (GoPro included) are separate streams (stored in various places and in various ways, making it interesting for developers to try and pull them out and make them comprehensible).
You can see some of the ramifications of this by looking at a GPX (or csv) of GoPro gps data extracted by dashware or GPMD2CSV: A hyperlapse I shot has 3 GPS stamps per second but 30 video frames per second. A 60fps video I shot has GPS coordinate data at 20x per second.
The best you'd be able to do -- if you could get a perfect timestamp for a frame off the video -- would be interpolating between the known GPS coordinates. Exiftool can do that for you via -geotag, or you can do it yourself using something like lightroom. Since any timestamp you got on a frame would be an interpolation, you'd be locating the frame by matching one interpolation to another. Probably more than adequate, but not simple.
If I were pulling frames, I'd just snapshot them in VLC player, fix the individual frame datetimeoriginal field to the video's shot datetime + elapsed time to the frame, and either let exiftool -geotag it (or them) from the exported gpx file, or drop them on a map in lightroom or similar in the next window. This would obviously only be tolerable for a handful of frames at a time.
Maybe there's a better way.