user2361: I'm doing research into natural phenomena in computer vision, and I'm looking for a method of shooting video from multiple camera angles. It's likely that the subject will move very erratically, therefore any synchronization issues between the cameras will be a problem. Imagine a flame or flowing water, it's hard to say exactly but it's going to need to be microseconds rather than milliseconds. I will want to use as many as 8 cameras, ideally constrained by budget rather than the ability to keep them in sync.
The cameras the department owns are Canon DSLRs, however after much searching it seems infeasible to synchronize them, especially with this level of accuracy. Therefore if I can find affordable cameras that can be synchronized easily, we might be able to buy some.
The two options available to me seem to be genlock and LANC. From what I can tell, I'm not going to get hold of a single genlock-able camera for under, say, £5000. Even forgetting the genlock signal, that's too much for us to be able to afford one, let alone 8. The Sony/Canon LANC thing seems more feasible, however I can't find any reliable information about how to go about setting this up or what cameras actually support it which are available now. I keep hitting dead-ends trying to look into this, and it doesn't help that mostly everyone doing this is trying to shoot in just stereo. Can anyone advise me on what set up we'd need and how much it would roughly cost? Or if there's some other synchronization solution that someone would like to recommend? Ease and cost are the biggest factors! Quality of video would of course be nice, but something is better than nothing.
Thanks! And I hope this doesn't sound like a shopping recommendation question. While I do want to go shopping, I really just need help understanding the synchronization techniques, and I'll work out what to buy after that!

user3105: If your research involve some motion analysis, you should consider shooting at high FPS.
You'll get better synch by default as the synch error cannot exceed the time gap between two frames.
Shooting at high frameratee in high resolution cost a lot, but you can trade resolution for FPS on cheap cameras (like sports cameras). Resolution is often less important than we think. Computer vision has sub-pixel accuracy, if you move a white object on a black background the edge will be aliased (grey). If your software take this grey shades into account it can theoretically get a precision of 1/256 pixel width. But for this to work you must have uncompressed data because compression quantize color and therefore change the information.
For cheap synching solution I can think of this :

link all start buttons together electrically
build a led small device with several leds displaying accurate time in binary (one led per bit), show this device to each camera then manually synch the shots. Kind of advanced clap.

The syncing difference could be handled on software side. If you are studing motion, you can analyse it in 2D for each camera, then interpolate results from one camera to guess what was the position at the time shot by the other camera. Ask if this is not clear for you.
This software compensation is definitely the way to go. Especially if you have to compensate also rolling shutter effect that most cameras have. Top of frame is shot slightly before bottom of frame. 



user2106: I've done 4-camera DSLR shoots with Nikon gear (D7000 & D3S). For our shots, we simply did a clapstick after all the cameras rolled AND just before cutting, so we had two sync points. Our longest shot was about 18 minutes long, and there was no noticable drift in sync in out post system. Although genlock is the PREFERRED way to go, I've found that a lot of digital equipment is ~close enough~ (heck, I've shot a music video with playback from a CD boombox and a constant speed (not crystal controlled) camera motor and it was SPOT ON. 
For something that's under a minute, which your project sounds like, I'm fairly confident you won't need to worry about sync. 
Just get a clapboard, make sure all the cameras can see it clearly and are RUNNING, then clap it down. Without cutting, jsut reposition your focus and focal length to where you need it for the shot. Capture the shot, then, again without cutting, zoom back out to where all eight cameras can see the clapstick, and clap. THEN you can cut your cameras. Sync up the frames where the clapstick hits in all 8 shots, e viola.
Good luck!  

user2361: A year after posting this question, I'm getting a few extra comments and answers, which is really great. It is technically still a problem, but let me share what I've learned in the last year, in case anyone else stumbles on this page with a similar problem.
We came up with two inexpensive solutions to the problem which I think will work, in the right conditions.

Use a high speed strobe light. This only works if the subject does not emit light (unfortunately not the case for me) and can be placed in a very dark room. Get hold of a very fast very accurate strobe light, then set it to go off at the same frequency as the cameras, say 50fps/50hz. Then set the shutter speed of all the cameras to 1/50th of a second, i.e. the shutter is always open. Place the subject in a very dark room, and set the aperture such that the video appears black without the light. Then illuminate with the strobe light. The videos will naturally be synchronised, because the only light they get is from the strobe, and it happens once per frame. Difficulty is getting a precise enough strobe. But I hear that they are used in heavy manufacturing operations to inspect blades/wheels/belts etc, which can't be turned off. You light the tool only with a strobe that has analogue control, and slowly increase the speed of the strobe, and as you reach the frequency of the tool it will appear to slow down, and eventually stop. Now you can inspect for problems. Just don't touch it ;).
Use the vsync signal on the composite video out of the cameras. This is inspired by http://samj.snappages.com/. This signal is sent out regularly every frame, and with some electronics you can measure the difference between the signal on two (or more) different cameras. You can then power cycle the camera (or on some cameras, take a picture. More on that later...) and measure it again, and so on. If you are clever with the timing on the power cycling you can bring them closer and closer together to within a threshold. We didn't end up trying this just because we didn't end up building the circuit, and we figured this would just be too fiddly to work with, especially with more than 2 cameras.

As I said, we didn't end up doing either of these. We ended up putting in a bid for funding for a not-inexpensive system, one that is designed for this exact purpose, from a company such as NorPix. These are synchronised over ethernet and come set up. I was never able to find out how exactly (protocol etc) they use ethernet to synchronise, so if someone wants to explain that I'd be very interested. Last time I was updated, I was told we did find some money, but of course, if you know anything about academic bureaucracy you won't be surprised to find out that I'm still waiting for the equipment!
If anyone does have a magic idea that achieves true synchronisation inexpensively, I'm still open to suggestions.
To close, I will mention a strategy that did not work, in my tests. And that is the one on this website: http://3dfilmfactory.com/index.php?option=com_content&view=article&id=93:gen-lock-canon-5d-mark-ii-cameras-and-shoot-3d
Granted, we have different hardware, Canon 60Ds, and we had very cheap off-brand wireless shutter releases. However I have no reason to think they caused any noticeable difference to the setup in the link. I set up tests using an LED device, like Bokan suggested in his answer, and the average difference in synchronisation only dropped by about 1ms after using the wireless shutter release compared to the control tests, and sometimes it made it worse. I didn't do any statistical analysis, but I suspect it would not be significant compared to chance. I think it's very likely that 3D Film Factory either weren't shooting material in which they'd notice the synchronisation problem, or their more expensive hardware gave a slightly more reliable result which still isn't measurably that different. Scaling to more than 2 cameras, I'm confident that it's not a reliable method.
However, using the remote shutter release does reset the video. If you use the 'record' button on the cameras (or a remote), then it simply starts saving the footage that is already being processed. In other words, if you measure the synchronisation in several different tests without turning the camera off, taking a picture, or letting it go into power save mode, then the synchronisation will be the same. You could incorporate this mechanism into approach number (2) above: rather than power cycling the cameras it could take pictures until the vsync signals were in line. It would be a cool device, we just never got round to actually building it.
Thanks again for any suggestions. I hope someday someone will find this useful, and the months I wasted trying to solve it will save someone a bit of time!

2361: <p>I'm doing research into natural phenomena in computer vision, and I'm looking for a method of shooting video from multiple camera angles. It's likely that the subject will move very erratically, therefore any synchronization issues between the cameras will be a problem. Imagine a flame or flowing water, it's hard to say exactly but it's going to need to be microseconds rather than milliseconds. I will want to use as many as 8 cameras, ideally constrained by budget rather than the ability to keep them in sync.</p>

<p>The cameras the department owns are Canon DSLRs, however after much searching it seems infeasible to synchronize them, especially with this level of accuracy. Therefore if I can find affordable cameras that can be synchronized easily, we might be able to buy some.</p>

<p>The two options available to me seem to be genlock and LANC. From what I can tell, I'm not going to get hold of a single genlock-able camera for under, say, £5000. Even forgetting the genlock signal, that's too much for us to be able to afford one, let alone 8. The Sony/Canon LANC thing seems more feasible, however I can't find any reliable information about how to go about setting this up or what cameras actually support it which are available now. I keep hitting dead-ends trying to look into this, and it doesn't help that mostly everyone doing this is trying to shoot in just stereo. Can anyone advise me on what set up we'd need and how much it would roughly cost? Or if there's some other synchronization solution that someone would like to recommend? Ease and cost are the biggest factors! Quality of video would of course be nice, but something is better than nothing.</p>

<p>Thanks! And I hope this doesn't sound like a shopping recommendation question. While I do want to go shopping, I really just need help understanding the synchronization techniques, and I'll work out what to buy after that!</p>
 3105: <p>If your research involve some motion analysis, you should consider shooting at high FPS.
You'll get better synch by default as the synch error cannot exceed the time gap between two frames.</p>

<p>Shooting at high frameratee in high resolution cost a lot, but you can trade resolution for FPS on cheap cameras (like sports cameras). Resolution is often less important than we think. Computer vision has sub-pixel accuracy, if you move a white object on a black background the edge will be aliased (grey). If your software take this grey shades into account it can theoretically get a precision of 1/256 pixel width. But for this to work you must have uncompressed data because compression quantize color and therefore change the information.</p>

<p>For cheap synching solution I can think of this :</p>

<ul>
<li>link all start buttons together electrically</li>
<li>build a led small device with several leds displaying accurate time in binary (one led per bit), show this device to each camera then manually synch the shots. Kind of advanced clap.</li>
</ul>

<p>The syncing difference could be handled on software side. If you are studing motion, you can analyse it in 2D for each camera, then interpolate results from one camera to guess what was the position at the time shot by the other camera. Ask if this is not clear for you.</p>

<p>This software compensation is definitely the way to go. Especially if you have to compensate also rolling shutter effect that most cameras have. Top of frame is shot slightly before bottom of frame. <div class="youtube-embed"><div>
                <iframe width="640px" height="395px" src="https://www.youtube.com/embed/Zt0u9hsPuZY?start=0"></iframe>
            </div></div></p>
 2106: <p>I've done 4-camera DSLR shoots with Nikon gear (D7000 &amp; D3S). For our shots, we simply did a <a href="http://www.dvxuser.com/V6/showthread.php?132493-DIY-Clapboard" rel="nofollow">clapstick</a> after all the cameras rolled AND just before cutting, so we had two sync points. Our longest shot was about 18 minutes long, and there was no noticable drift in sync in out post system. Although genlock is the PREFERRED way to go, I've found that a lot of digital equipment is ~close enough~ (heck, I've shot a music video with playback from a CD boombox and a constant speed (not crystal controlled) camera motor and it was SPOT ON. </p>

<p>For something that's under a minute, which your project sounds like, I'm fairly confident you won't need to worry about sync. </p>

<p>Just get a clapboard, make sure all the cameras can see it clearly and are RUNNING, then clap it down. Without cutting, jsut reposition your focus and focal length to where you need it for the shot. Capture the shot, then, again without cutting, zoom back out to where all eight cameras can see the clapstick, and clap. THEN you can cut your cameras. Sync up the frames where the clapstick hits in all 8 shots, e viola.</p>

<p>Good luck!  </p>
 2361: <p>A year after posting this question, I'm getting a few extra comments and answers, which is really great. It is technically still a problem, but let me share what I've learned in the last year, in case anyone else stumbles on this page with a similar problem.</p>

<p>We came up with two inexpensive solutions to the problem which I think will work, in the right conditions.</p>

<ol>
<li>Use a high speed strobe light. This only works if the subject does not emit light (unfortunately not the case for me) and can be placed in a very dark room. Get hold of a very fast very accurate strobe light, then set it to go off at the same frequency as the cameras, say 50fps/50hz. Then set the shutter speed of all the cameras to 1/50th of a second, i.e. the shutter is always open. Place the subject in a very dark room, and set the aperture such that the video appears black without the light. Then illuminate with the strobe light. The videos will naturally be synchronised, because the only light they get is from the strobe, and it happens once per frame. Difficulty is getting a precise enough strobe. But I hear that they are used in heavy manufacturing operations to inspect blades/wheels/belts etc, which can't be turned off. You light the tool only with a strobe that has analogue control, and slowly increase the speed of the strobe, and as you reach the frequency of the tool it will appear to slow down, and eventually stop. Now you can inspect for problems. Just don't touch it ;).</li>
<li>Use the vsync signal on the composite video out of the cameras. This is inspired by <a href="http://samj.snappages.com/" rel="noreferrer">http://samj.snappages.com/</a>. This signal is sent out regularly every frame, and with some electronics you can measure the difference between the signal on two (or more) different cameras. You can then power cycle the camera (or on some cameras, take a picture. More on that later...) and measure it again, and so on. If you are clever with the timing on the power cycling you can bring them closer and closer together to within a threshold. We didn't end up trying this just because we didn't end up building the circuit, and we figured this would just be too fiddly to work with, especially with more than 2 cameras.</li>
</ol>

<p>As I said, we didn't end up doing either of these. We ended up putting in a bid for funding for a not-inexpensive system, one that is designed for this exact purpose, from a company such as NorPix. These are synchronised over ethernet and come set up. I was never able to find out how exactly (protocol etc) they use ethernet to synchronise, so if someone wants to explain that I'd be very interested. Last time I was updated, I was told we did find some money, but of course, if you know anything about academic bureaucracy you won't be surprised to find out that I'm still waiting for the equipment!</p>

<p>If anyone does have a magic idea that achieves true synchronisation inexpensively, I'm still open to suggestions.</p>

<p>To close, I will mention a strategy that <em>did not</em> work, in my tests. And that is the one on this website: <a href="http://3dfilmfactory.com/index.php?option=com_content&amp;view=article&amp;id=93:gen-lock-canon-5d-mark-ii-cameras-and-shoot-3d" rel="noreferrer">http://3dfilmfactory.com/index.php?option=com_content&amp;view=article&amp;id=93:gen-lock-canon-5d-mark-ii-cameras-and-shoot-3d</a></p>

<p>Granted, we have different hardware, Canon 60Ds, and we had very cheap off-brand wireless shutter releases. However I have no reason to think they caused any noticeable difference to the setup in the link. I set up tests using an LED device, like Bokan suggested in his answer, and the average difference in synchronisation only dropped by about 1ms after using the wireless shutter release compared to the control tests, and sometimes it made it worse. I didn't do any statistical analysis, but I suspect it would not be significant compared to chance. I think it's very likely that 3D Film Factory either weren't shooting material in which they'd notice the synchronisation problem, or their more expensive hardware gave a slightly more reliable result which still isn't measurably that different. Scaling to more than 2 cameras, I'm confident that it's not a reliable method.</p>

<p>However, using the remote shutter release <em>does</em> reset the video. If you use the 'record' button on the cameras (or a remote), then it simply starts saving the footage that is already being processed. In other words, if you measure the synchronisation in several different tests without turning the camera off, taking a picture, or letting it go into power save mode, then the synchronisation will be the same. You could incorporate this mechanism into approach number (2) above: rather than power cycling the cameras it could take pictures until the vsync signals were in line. It would be a cool device, we just never got round to actually building it.</p>

<p>Thanks again for any suggestions. I hope someday someone will find this useful, and the months I wasted trying to solve it will save someone a bit of time!</p>
