I finally found a webcam and software combination that is not only cheap, but relatively easy to setup. Being a cheapskate, I have avoided the Raspberry pi camera. The Raspberry pi camera has several things going for it (from what I gather): lower power consumption, faster response, and it does not use a USB port. I ordered a very cheap webcam (rather blindly) from Amazon hoping it will work. lsusb indicates it is made by Aveo (or at least compatible) and comes up with ID 1871:0101 (my kernel is 3.10.25). This webcam works without a powered USB hub. It typically shows up in the device tree as /dev/video0 (if it’s the only device you have plugged in). I’ve found that the rpi does not supply enough USB power to power the camera and anything else (including a keyboard).
Edit: Demo images




(Amazon Link)
There are several different software packages out there:
- raspistill for the Official Rasperry pi camera
- OpenCV or SimpleCV
- pygame
- imgproc a library for Python (no save capability)
- fswebcam
I’ve found fswebcam to be the fastest way of getting started. I burned a lot of time looking at OpenCV or combinations of mpeg-streamer. fswebcam just works. It comes in a package:
sudo apt-get install fswebcam
and it is very easy to use:
fswebcam -d /dev/video0 -r 640x480 test.jpg
and it is very easy to use:
fswebcam -d /dev/video0 -r 640x480 test.jpg
I found that the software can sometimes return an image that contains parts of two frames, like this:

To avoid this problem, tell the program to skip two frames:
fswebcam -d /dev/video0 -S 2 -r 640x480 test.jpg
There is also a background mode (using -b) to enable it run as a background daemon. So far fswebcam will not retrieve images at greater than 640×480 resolution from this camera.
