user6291: I am trying to capture stereo video with 2 Microsoft LifeCam Studio USB webcams.  Thus far, the best approach I've managed to come up with is my own tool written using OpenCV to capture video streams from the cameras in Ubuntu 14.04. I am using very simple VideoCapture code (source here) and am trying to at least view two videos that are synchronized against each other.
I used Android stopwatch apps (UltraChron Stopwatch Lite and Stopwatch Timer) on my Samsung Galaxy S3 mini to realize that my viewed images are out of sync (show different time on stopwatch).
The frames are synced maybe in 50% of the time. The frame time differences I get are from 0 to about 300ms with an average about 120ms. It seems that the amount of timeout used has very little effect on sync (same for 1000ms or 2000ms). I run in FullHD but lowering resolution to 640x480 had no effect.
I am trying to record stereo video with a low cost setup.  An ideal result would be a 100% synchronized stereo video stream that has about 10 FPS.  Are there any alternative approaches that would result in better synchronization?
EDIT: In my search for low-cost hardware I fount that it is probably possible to do some commodity hardware hacking (link here) and inject a single clock signal into multiple camera modules simultaneously to get the desired sync. The guy who did that seems to have developed his GENLOCKed camera board (called NerdCam1) and even a synced stereo camera board that he now sells for about €200.
However, I have almost zero ability of hardware hacking. Also I am not sure if such clock injection is possible for resolutions above NTSC/PAL standard (as it seems to be an "analog" solution?). Also, I would prefer a variable baseline option where both cameras would not be soldered on a single board.
Also found this related post: Cheap solution for shooting with multiple (>2) cameras in sync
   (genlock or LANC?)

user3295: You probably will not achieve a 100% perfect result with your setup. That you got them synced to a 1FPS accuracy is pretty amazing actually.
Professional stereo setups use frame locking in hardware to ensure the cameras record in perfect sync.
This is not possible with ordinary webcams. If you fix the recorded video in post you can get to less than 1/RecordingFPS'th of a second accuracy which can be enough depending on your framerate. The higher your framerate the smaller the offset will be.
If the webcams offer some sort of low level api you might be able to improve the results even further but I doubt thats available, thats usually something you only get in (rather expensive) industrial cameras.
Edit: Regarding your edit, Genlocking is the way to go with pretty much any video application if you need 100% sync (or as close as possible to that, you will always have some nano/microsecond delay between frames).
Being it syncing videos displayed on a display wall (all these individual displays need to show the correct portion of the frame at the same time). Or recording with multiple cameras the same frame at the same time.
Resolution isn't a factor here.
Though price definitely is. Do you have a budget for this project or is this for hobby purposes? There are definitely (non-cinema) cameras that would support this though they are not exactly cheap as a webcam.
The cheapest solution I can think of is using the GoPro Stereo Rig. http://gopro.com/camera-accessories/dual-hero-system
This would put you at a budget of 1000$ in total (minus a few cents). Not exactly cheap but definitely affordable.
And the GoPro is also a very flexible solution. You can shoot from 3840x2160@15FPS to 848x480@240FPS. It also supports raw HDMI output which can be helpful if color precision is desirable or live monitoring of your shoot.
A downside is that the GoPro has a fish-eye lens. You can reduce the distortion by setting the camera viewing mode to narrow and using this nifty software hack but you wont get fully rid of it unless you replace the lens.
Edit 2: If you go the "build your own electronics route" you should have a look at the ArduCam project. It's essentially a shield for the popular Arduino boards. It allows you to connect several cmos modules like the OV5642 which is a 5MP sensor that is also used in the Raspberry Pi camera module.
According to this thread on the RaspberryPi forum these modules support genlocking.
While its not possible with the pins broken out on the PiCam module (though there are some ideas about how to do genlocking with it on the last page) you can order these modules cheap (25$) from ebay and use them with the ArduCam board. Even if you don't connect the modules to the same oscillator to do genlocking you should get some pretty good results as you work pretty close metal here also the Arduino plattform is very easy to use.
With such a setup you could potentially make a 1080p stereo 3D rig for around 125$.
50$ for the cmosm modules, ~16$ for 2 Arduino Uno clones and 60$ for 2 ArduCam shields. 

6291: <p>I am trying to capture stereo video with 2 Microsoft LifeCam Studio USB webcams.  Thus far, the best approach I've managed to come up with is my own tool written using OpenCV to capture video streams from the cameras in Ubuntu 14.04. I am using very simple VideoCapture code (<a href="http://pastebin.com/siUbeqqB" rel="nofollow noreferrer">source here</a>) and am trying to at least view two videos that are synchronized against each other.</p>

<p>I used Android stopwatch apps (<a href="https://play.google.com/store/apps/details?id=spinninghead.talkingstopwatchlite" rel="nofollow noreferrer">UltraChron Stopwatch Lite</a> and <a href="https://play.google.com/store/apps/details?id=com.hybrid.stopwatch" rel="nofollow noreferrer">Stopwatch Timer</a>) on my Samsung Galaxy S3 mini to realize that my viewed images are out of sync (show different time on stopwatch).</p>

<p>The frames are synced maybe in 50% of the time. The frame time differences I get are from 0 to about 300ms with an average about 120ms. It seems that the amount of timeout used has very little effect on sync (same for 1000ms or 2000ms). I run in FullHD but lowering resolution to 640x480 had no effect.</p>

<p>I am trying to record stereo video with a low cost setup.  An ideal result would be a 100% synchronized stereo video stream that has about 10 FPS.  Are there any alternative approaches that would result in better synchronization?</p>

<p><strong>EDIT</strong>: In my search for low-cost hardware I fount that it is probably possible to do some commodity hardware hacking (<a href="http://letsmakerobots.com/node/29869" rel="nofollow noreferrer">link here</a>) and inject a single clock signal into multiple camera modules simultaneously to get the desired sync. The guy who did that seems to have developed his <a href="http://letsmakerobots.com/blog/antennna/nerdcam1-something-i-have-been-waiting" rel="nofollow noreferrer">GENLOCKed camera board (called NerdCam1)</a> and even a <a href="http://www.themissinggear.eu/nerdcam3d-mk-1/" rel="nofollow noreferrer">synced stereo camera board</a> that he now sells for about €200.</p>

<p>However, I have almost zero ability of hardware hacking. Also I am not sure if such clock injection is possible for resolutions above NTSC/PAL standard (as it seems to be an "analog" solution?). Also, I would prefer a variable baseline option where both cameras would not be soldered on a single board.</p>

<p>Also found this related post: <a href="https://video.stackexchange.com/questions/3983/cheap-solution-for-shooting-with-multiple-2-cameras-in-sync-genlock-or-lanc">Cheap solution for shooting with multiple (>2) cameras in sync
   (genlock or LANC?)</a></p>
 3295: <p>You probably will not achieve a 100% perfect result with your setup. That you got them synced to a 1FPS accuracy is pretty amazing actually.</p>

<p>Professional stereo setups use frame locking in hardware to ensure the cameras record in perfect sync.
This is not possible with ordinary webcams. If you fix the recorded video in post you can get to less than 1/RecordingFPS'th of a second accuracy which can be enough depending on your framerate. The higher your framerate the smaller the offset will be.</p>

<p>If the webcams offer some sort of low level api you might be able to improve the results even further but I doubt thats available, thats usually something you only get in (rather expensive) industrial cameras.</p>

<p><strong>Edit:</strong> Regarding your edit, Genlocking is the way to go with pretty much any video application if you need 100% sync (or as close as possible to that, you will always have some nano/microsecond delay between frames).</p>

<p>Being it syncing videos displayed on a display wall (all these individual displays need to show the correct portion of the frame at the same time). Or recording with multiple cameras the same frame at the same time.
Resolution isn't a factor here.</p>

<p>Though price definitely is. Do you have a budget for this project or is this for hobby purposes? There are definitely (non-cinema) cameras that would support this though they are not exactly cheap as a webcam.
The cheapest solution I can think of is using the GoPro Stereo Rig. <a href="http://gopro.com/camera-accessories/dual-hero-system" rel="nofollow">http://gopro.com/camera-accessories/dual-hero-system</a>
This would put you at a budget of 1000$ in total (minus a few cents). Not exactly cheap but definitely affordable.</p>

<p>And the GoPro is also a very flexible solution. You can shoot from 3840x2160@15FPS to 848x480@240FPS. It also supports raw HDMI output which can be helpful if color precision is desirable or live monitoring of your shoot.</p>

<p>A downside is that the GoPro has a fish-eye lens. You can reduce the distortion by setting the camera viewing mode to narrow and using this <a href="https://github.com/KonradIT/MagicLanternGoPro/tree/master/GoProHERO3%2BBlack/FisheyeRemoval" rel="nofollow">nifty software hack</a> but you wont get fully rid of it unless you <a href="http://peauproductions.com/store/index.php?main_page=index&amp;cPath=124_126_127" rel="nofollow">replace the lens</a>.</p>

<p><strong>Edit 2:</strong> If you go the "build your own electronics route" you should have a look at the ArduCam project. It's essentially a shield for the popular Arduino boards. It allows you to connect several cmos modules like the OV5642 which is a 5MP sensor that is also used in the Raspberry Pi camera module.</p>

<p>According to <a href="http://www.raspberrypi.org/forums/viewtopic.php?f=43&amp;t=48238" rel="nofollow">this thread</a> on the RaspberryPi forum these modules support genlocking.
While its not possible with the pins broken out on the PiCam module (though there are some ideas about how to do genlocking with it on the last page) you can order these modules cheap (25$) from ebay and use them with the ArduCam board. Even if you don't connect the modules to the same oscillator to do genlocking you should get some pretty good results as you work pretty close metal here also the Arduino plattform is very easy to use.</p>

<p>With such a setup you could potentially make a 1080p stereo 3D rig for around 125$.
50$ for the cmosm modules, ~16$ for 2 Arduino Uno clones and 60$ for 2 ArduCam shields. </p>
