joshvillbrandt / GoProController

An http API to control multiple GoPro cameras over wifi.
Apache License 2.0
190 stars 43 forks source link

Latency between switching cameras #6

Open jguoxu opened 9 years ago

jguoxu commented 9 years ago

HI Josh, it looks like the api is constantly switch between the gopro's wifi networks? What is the latency between the camera switching (disconnect/connect to a new wifi network)?

Thanks!

BenBlumer commented 9 years ago

I would love to know this as well. For my application, I'd like to synch two cameras and use them for stereovision.

jguoxu commented 9 years ago

Hi @BenBlumer, I actually did some research after I post this. All the solutions I found is involving some synchronization in the post-process. For example, you can clap or flash a really bright light on all camera, then in the post-process (image stitching process), the software picks up that signal to align the videos together.. Even if you use the GoPro remote, it's not guaranteed that the camera will start at exactly same timestamp.

Please let me know if you find other solution as well :)

BenBlumer commented 9 years ago

Thanks for the reply!

I was thinking about doing something like that. A little arduino lighting an LED or something. I'm not sure if I'll bother doing it this go-around, but clipping the video to start when the LED turns on could be automated too.

I figured out that there's a time-created stamp on the video file, but depending on the file system used on the GoPro, it's only accurate to a couple of seconds -- nowhere near close enough for stereovideo. So, I think I'm gonna go with your solution/LED solution.

joshvillbrandt commented 9 years ago

Hey guys,

The latency using the ad-hoc wireless connections is about 5 seconds per network switch with the current implementation. This library probably isn't for you if you require sub-second triggering between cameras.

If you wanted to use wireless and and achieve sub-second latency, you could use a dedicated antenna per camera or try to hack the infrastructure wireless mode that the remote uses. Mind you that the GoPro cameras themselves seem have some timing variability even after the record button has been pressed, so I still think you'd need some post-processing here.

In addition to the light-synchronized methods you guys have mentioned, I've heard of folks also using sound-synchronizing. I've even scene some sound-trigger products on the market. Not sure if those eliminate the need for post processing or not.

Best of luck!