Garmin Virb Edit Video and Data Sync Workaround

I did some testing to find a workaround to syncing video and fitness files in Garmin Virb Edit after it recently broke.  This method involves editing the metadata of your video files (using a script and ffmpeg) so when you import them into Garmin Virb Edit, they are in sync with your fitness data.  Essentially this is manually syncing your video files using Strava flyby (which shows your activity time) and your source video files.

All my testing was done with GoPro Hero 11 mini video files.  Please let me know if they does or doesn't work with other cameras or if it needs changes.  I've only done limited testing, but, wanted to share to see if there are changes I should make.

I haven't had time to write proper usage and instructions.  For now I made a screen recording and YouTube video of how to install and use the script.

Current Release on GitHub: https://github.com/vcbb10/Video-Timecode-Modifier/releases/tag/v2.0

YouTube Tutorial of v2.0 with batch processing: https://youtu.be/PkgtDeTRSNs

YouTube Tutorial of v1.0: https://youtu.be/ehsWGAbFjJ0

No longer needed: YouTube Install and Download Instructions (at the end of that YouTube video): https://youtu.be/ehsWGAbFjJ0?si=21TBPfUf-inz1NfQ&t=1130

No longer needed: ffmpeg (required): https://github.com/GyanD/codexffmpeg/releases/tag/2023-09-07-git-9c9f48e7f2


Again, please leave me feedback if you have issues or suggestions to make this easier.

Thanks!

  • I made some modifications today and created the first release in GitHub.  You can now directly download the .zip file and ffmpeg will be included.  Just extract the .zip (instead of needing the install instructions).

    https://github.com/vcbb10/Video-Timecode-Modifier/releases/tag/Release

    Changes to "Video Timecode Modifier.bat"

    Many updates:
    Changed Default output to include a directory (TCF):
    "SourceVideoPath"\TCF\
    
    Now accepts Source File and Timecode as arguments (for a future batch processing tool)
    
    Example Usage with an argument:
    "Video Timecode Modifier.bat" "SourceVideoFile" "Timecode"
    
    Cleaned up notes
    Cleaned up code
    Didn't regression test enough... :)


    Changes to "Time Conversion.xlsx"
    Updated with a "File Number to Sync" row.
    This now allows you to sync the file time of any file in the data set (insted of just file 1) and now the Excel sheet will calculate the other file times based off that file number.
    
    Example: Sync Timestamp to file 5
    Enter "5" in "B3" ("File Number to Sync")
    Now the "Calculated Video Time" will populate for file 5 directly.
    Other files will sync to file 5.
    
    Previously file sync had to only be file 1.
    
    Changed the method of calculating time offseets for the "Additional Files" section to work with the changes above.
  • New v2.0 release now includes optional batch file processing.

    Release: github.com/.../v2.0

    Added batch sync processing with "Batch Timecode Process.bat".

    Batch Timecode Processing Usage:

    Create your "TimeConversion.xlsx" sheet with all times in sync (like normal).
    Go to tab 2 (Timecode Export CSV).
    Click File-Save As
    Save it as a .CSV file named "Time Conversion.csv"
    This should be in the same directory as the .bat scripts.

    Name your video files so they are in ascending order.
    Note: they are processed in ascending order, and timecode is processed in this order.
    if they aren't in ascending order, they will be processed incorrectly.

    Recommend you name the files with a prepended number sequence.
    Example: 001_<Filename>, 002_<Filename>, 003_<Filename), etc.
    Video files MUST be .MP4. Other filenames are ignored.
    ALL video files in that directory will be processed.

    Drag and drop the first video file onto "Batch Timecode Process.bat" to sync all the files.

  • Updated tutorial for v2.0 with batch (multiple) file processing: https://youtu.be/PkgtDeTRSNs

  • Zomg, youre the best. I love you. I've been trying to reach you about your car's extended warranty.