-
Notifications
You must be signed in to change notification settings - Fork 138
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Images sampled from GoPro split videos repeat the timestamps for each video segment #505
Comments
Thanks for the info. Is there any way to identify if segments belong to one video other than the name pattern? Could you check the videos with |
Oh, ffprobe actually shows things that exiftool doesn't. I didn't realize that. I'll dump the full results from a sequence I have below, but here's the only useful thing I see from first, second (15 skipped) and last video files:
Looks like I don't see anything to uniquely identify a sequence of videos besides the creation date. Without a file name, you can't even directly tell which one in the sequence it is. I also compared the output between two different sequences and there is no difference besides the creation time and time code. Here is the full probe dump: RudyTheDev@7b290c1 |
Hey @RudyTheDev could you try out the latest commit and see if it works. Feel free to reopen if it does not. |
The current main revision gives me this when run:
|
What "construct" version are you using? Check:
If it is lower than the specified version |
I checked the version and it was I don't have a full sequence right now to sample; I tried to sample 2 consecutive videos, but unfortunately it looks like the image batches still restart the timestamps for each video file. I'll try a proper sequence tomorrow. |
I ran on it on 4-file long sequence. The differences between video files in The creation timestamp of all streams in each file is the same:
Time codes of all the individual streams in each file are:
The durations of video files are:
There at 1064, 1064, 1064, and 514 files sampled from the videos at 0.3 ( EXIF timestamps of first images from file sequence are:
EXIF timestamps of last images from file sequence are:
|
Thanks for the update. I wasn't clear on what the PR fixes. #529 doesn't fix video segment creation times. Instead it forces the samples and the GPS trace to use the same clock, so that the samples can be interpolated on the right locations along the GPS trace. I will address the creation timestamp issue in another PR. |
Basic information
main
(but with a fix applied first from 0.8.2 video_process command for GoPro camera does not work on Windows 10 #503)Windows 10 Pro x64
GoPro HERO8 Black HD8.01.02.50.00
Steps to reproduce behavior
videos/GH01####.MP4
,videos/GH02####.MP4
, etc.mapillary_tools sample_video "videos/" "images/" --video_sample_interval 1
Expected behavior
images/GH01####.MP4/
folder has image files with EXIF timestamps2022-05-28 18:00:00
,2022-05-28 18:00:01
, etc.images/GH02####.MP4/
folder has image files with EXIF timestamps2022-05-28 18:09:10
,2022-05-28 18:09:11
, etc.etc.
Actual behavior
images/GH01####.MP4/
folder has image files with EXIF timestamps2022-05-28 18:00:00
,2022-05-28 18:00:01
, etc.images/GH02####.MP4/
folder has image files with EXIF timestamps2022-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 (RudyTheDev@7562044) 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.
The text was updated successfully, but these errors were encountered: