I am using several Garmin to collect some video with same events but from different perspective. Since Garmin VirbXE had built in GPS receiver and record data into fit file, I tried to read these gps data by using java package FitCSVTool.jar from SDK to convert fit to human readable csv file.
My Goal is to find the UTC time for different video sequences so that each frame within the video is labeled by UTC time.
From these csv file I have
timestamp_correlation message with following field: timestamp (in UTC), system_timestamp (in second), system_timestamp_ms (millisecond), timestamp_ms (millisecond), local_timestamp (in UTC)
camera_event (type 0 for video start) message with field: timestamp (second), timestamp_ms (millisecond)
camera_event (type 2 for video end) message with field: timestamp (second), timestamp_ms (millisecond)
My assumption is except for timestamp field in correlation message is in UTC time from GPS, all other timestamps was recorded by camera system time that triggered by its internal crystal. If that is the case, I come up with this equation:
UTC_camera_start = UTC_correlation_timestamp + ( SYS_cameraStart - SYS_correlationTimestamp)
Question:
1. Is my assumption correct? I could not find any resource explain this.
2. What is usage for "local_timestamp" field in timestamp_correlation message?
3. Are there any better way to decode fit file instead of using java SDK?
I had attached my csv file for reference.