Images sampled from GoPro split videos repeat the timestamps for each video segment
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 38/100
Research direction
Reproduce the issue with the sample_video command and split GoPro files, then trace the timestamp handling used by that entry point. Done means successive video segments produce continuous EXIF timestamps rather than repeating the first segment's start time.
Written by the indexing model from the issue text.
Description
Basic information
- Release version:
main(but with a fix applied first from https://github.com/mapillary/mapillary_tools/issues/503) - System:
Windows 10 Pro x64 - Capture Device:
GoPro HERO8 Black HD8.01.02.50.00
Steps to reproduce behavior
- Have a video recorded on GoPro Hero 8 long enough to be split into 2+ files, i.e.
videos/GH01####.MP4,videos/GH02####.MP4, etc. - Run image sampling from video, for example
mapillary_tools sample_video "videos/" "images/" --video_sample_interval 1
Expected behavior
images/GH01####.MP4/ folder has image files with EXIF timestamps 2022-05-28 18:00:00, 2022-05-28 18:00:01, etc.
images/GH02####.MP4/ folder has image files with EXIF timestamps 2022-05-28 18:09:10, 2022-05-28 18:09:11, etc.
etc.
Actual behavior
images/GH01####.MP4/ folder has image files with EXIF timestamps 2022-05-28 18:00:00, 2022-05-28 18:00:01, etc.
images/GH02####.MP4/ folder has image files with EXIF timestamps 2022-05-28 18:00:00, 2022-05-28 18:00:01, etc.
etc.
Additional information
I believe the problem is that my GoPro 8's split video segments all have the same stream/track creation date metadata. For instance, both videos in the above example would have "Media Create Date" set to "2022:05:28 18:00:00". So my GoPro doesn't actually record each segment's creation time, but only the creation time of the whole recording.
I tried various parameters and combinations, but didn't get anything to work. I tried seeing if there was some place where the code would handle something like this, but also didn't see anything.
What I did locally to fix this (https://github.com/RudyTheDev/mapillary_tools/commit/75620445aca75f662dab6f3f94fe1e0a498feff3) is to keep the total elapsed time and offset every consecutive video by that amount. This is a quick-and-dirty fix that doesn't know anything about the video sequence or GoPro logic, but this does produce the correct/expected timestamps for me.
- Dominant language
- Python
- Stars
- 315
- Forks
- 145
- Avg merge
- 3d 10h
- Merged PRs (30d)
- 2
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from mapillary/mapillary_tools
-
Difficulty 3/5 1-2 days Newbie friendliness 48/100
mapillary/mapillary_tools#827 ·
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
mapillary/mapillary_tools#819 · 2 comments ·
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
mapillary/mapillary_tools#783 · 3 comments ·
-
Difficulty 4/5 3-5 days Newbie friendliness 38/100
mapillary/mapillary_tools#748 · 2 comments ·
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
mapillary/mapillary_tools#747 · 9 comments ·
All issues in mapillary/mapillary_tools
Similar issues
-
documentation help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
simonw/sqlite-utils#872 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100