First up, its great to see a properly open forum with conversation's including the developers. I'm encoraged to see that a lot of work is going into the Virb Edit software and the improvements are noticable. However, there is DEFINATELY a problem with overlap miss-match and after quite a lot of time investigating the causes I believe I have figured it out.
Below I believe I have found both a Firmware and Virb Edit defect which contribute to the problem under two different conditions. I have made this determination after a week of using my Garmin Virb on a skiing holiday each day. As a result of these defects the overlays are off almost all of the time, unless corrected, but I now have the formula to correct them. The following has worked 100% of the time accross 50 odd videos taken over the week.
There are two different Senarios:
1. Camera is on and has GPS fix at start of recording - Set to record GPS only when recording video.
The Camera records a variable in the GPX file called gpxtrkoffx:StartOffsetSecs. If the Camera is on and with a GPS signal at the start of the recording this value is typically between 0 & 4 seconds, most commonly 4, and the GPS file is shorter than the video by the same amount. The issue (as far as I can see) is that Virb edit applies this offset the wrong way around. If this value is 4, with video at 4 seconds in (0:04) the GPS should be at 0:00 (i.e behind the video). However, if you view the GPS sync in Virb Edit the Video is at 0:00 with the GPS set to 0:04 (i.e ahead of the video). This means that the overlays will run 8 seconds ahead.
To correct this, move the video to 0:04 and (with the GPS now saying 0:08) move the bar to 0:00. In my case the overlays now line up.
2. Camera is off and the record switch is used to start recording - Set to record GPS only when recording video.
(I'm let certain of my diagnosis here, but this is what appears to be going on).
In this case the camera has to get a GPS fix before it can start to log in the GPX file. This can take some time, in the attached GPX it seems that was 1 minute 20 seconds. My video file is 20:51 and Virb Edit tells me the corresponding GPX file is is 19:31 (01:20 shorter). If I look in the GPX file the gpxtrkoffx:StartOffsetSecs is 4.090. This is odd, I'd expect it to say 80. I thought for some time that this would mean that the total offset of the GPX file to the video would be 1:24 meaning the behaviour was conistent with Scenario 1, but it's not, the offset is 1:20. This may mean that there is a firmware defect in that the gpxtrkoffx:StartOffsetSecs value is set incorrectly when the camera does not have a GPS fix at the start of recording.
Regardless of this potential firmware defect Virb Edit makes a right mess of lining this up. If I go to GPS Sync in Virb Edit I can clearly see the GPX file is only 19:31, yet Virb Edit once again sets the GPS data to start ahead of the video by 4 seconds (with video at 0:00 GPS is at 0:04). It's applying the (incorrect) offset incorrectly again. It completely ignores that the GPX file is shorter in duration than the video. If I allow Virb Edit to play this as is, it will play the GPS data 1 minute 24 seconds ahead.
If I move the video to 1:20 and then set the GPS data to 0:00, I of course have no GPS data for the first 1:20 of the video (which is correct the Camera wasn't recording it) and then a correctly aligned overly for the remaining video. Both files will correctly end at the same time.
In summary then I believe there are potentially 2 defects here:
1. The gpxtrkoffx:StartOffsetSecs is applied by Virb Edit the wrong way around. If gpxtrkoffx:StartOffsetSecs is positive Virb Edit should use this to put the GPS data BEHIND the video not ahead as is currently the case.
2. If the camera does not have a GPS fix when recording starts the gpxtrkoffx:StartOffsetSecs value is incorrect. In my case the GPX file was 1:20 shorter than the video and lines up perfectly if played as such. gpxtrkoffx:StartOffsetSecs should have been 80.
Until a fix is produced these defects are easily worked around. Simply calculate the time difference between the two files and then set the Video ahead by the corresponding amount. Works every time!
Now that I've figured this out I'm able to happily use my Garmin Virb for the first time. I plead with the developers to take a look and fix this problem, it's really quite straight forward and I can see from the forums it's causing people a lot of frustration with what is otherwise a great camera and pretty good editing software.
I've attached some annotated screen shots of the issue for scenario 2.
The original GPX file is here: https://www.dropbox.com/sh/85n0bcjqp9ujuox/AABmN0PfsyCYzYIdZ8xll8PSa?dl=0
Regards,
Paul.