Replies: 3 comments 5 replies
-
This sounds wrong. For a start there is no command that starts with a #. The time sync is always oMYYMMDDHHMMSS.sss Timecode from QR sync should be within 30-50ms, at least in my own testing. I will retest on HERO10 tomorrow, as all Labs enabled cameras should be pretty good at this. |
Beta Was this translation helpful? Give feedback.
-
Sorry this took a while, the data mostly met with my expectation, and the timecode generally remained within a frame. These camera are not TCAL (calibrated) so that both average around -32 frame offset. The two HERO10 cameras shot 4k @ 30fps and where synced using only https://gopro.github.io/labs/control/precisiontime/ The sync was done about every 4 captures, from the data you can see where as over 1h20m the cameras will not drift too much. CAM A display timecode error frames CAM B display timecode error frames Now for the anomaly. The 10-11 frame additional error surprised me, as I've never seen that (or data anything like your tests.) The error happened on file GX010001 (in a new folder 101GOPRO), it seem that creating a new clip was delayed by the creation of the new folder. This suggests, full, old or slow media, can have a impaction on how quickly files can be created, and the causing some loss of precision in the timecode (just a speculation at the moment.) But in general, the above data meets +/-1 frame timecode I've seen for all Labs enabled cameras. |
Beta Was this translation helpful? Give feedback.
-
For future reference, here I will explain how I end up interpreting timecode information from GoPro mp4. GoPro records the precise start time of a MP4 video in the "tmcd" i.e. GoPro TCD track.
This timecode is identical to the one read by ffprobe
Note that this timecode is recorded in the non-drop frame format, even for 29.97 / 59.94 Hz NTSC videos. Therefore, to convert this timecode into seconds since midnight we need to:
Alternatively, we can directly read the raw data from tmcd stream, which is a 4 byte big-endian integer for the number of frames since midnight:
Do NOT use the timecode pip package, since it:
|
Beta Was this translation helpful? Give feedback.
-
Dear GoPro Labs team,
Thank you so much for making such a developer-friendly and hackable product!
I'm a Robotics PhD student at Columba University. My current research project requires me to accurately sync multiple GoPro Hero 10s with a PC's clock that drives our OptiTrack system.
My current approach is:
If my understanding is correct, setting GoPro's clock once, and then recording multiple videos of the "#" custom rolling QR code without rebooting GoPro, should yield very similar (within 1/60 sec) timecode offsets between these videos. However, in my experiment, I found the time code offset could vary up to 0.5 seconds. A reddit user seems to agree with my experience.
Am I reading the correct timecode? Is my understanding incorrect? Is this problem specific to GoPro Hero 10? (I'm happy to purchase Hero 11 if its timecode is more accurate)
Beta Was this translation helpful? Give feedback.
All reactions