Logitech QuickCam Pro 9000

From MyLabWiki
Revision as of 09:55, 19 June 2010 by Alex (Talk | contribs)

Jump to: navigation, search


Drivers and Applications

GTK+ UVC Viewer

The GTK+ UVC Viewer[1] (guvcview) a simple GTK interface for capturing and viewing video from devices supported by the linux UVC driver. It works great with the Logitech QuickCam Pro 9000 and seems to support all features of the camera.

When the camera is used for the first time after boot, one has to execute

 $> sudo guvcview -a

to detect and add all the supported controls. Note: this may not be necessary if libwebcam is installed (TBC).

  • Can capture video
  • Can capture audio – GNOME sound mixer panel applet can control audio input level and it sounds good. Mute works too!
  • Additional controls – including focus – are enabled after running guvcview -a as root once
  • Can be run in control mode only so that the video is captured by another application by guvcview is used to adjust settings

Windows

After installation, the software that comes with the camera works well and can capture HD-like video very well. However, when using a third party capture application, size seems to be stuck at 320x240 pixels.

Mac

Camera seems to work but stuck on 320x240 and no way to control settings. I couldn't find any useful app for Mac.

Other Apps

Other apps are listed on the QuickCam Teams website[2] and Unicap[3].

For programming Libwebcam</ref>http://www.quickcamteam.net/software/libwebcam</ref> can be used.

Features

Pixel formats

When starting guvcview[1] it dumps the supported pixel formats together with the resolutions and frame rates that can be used for each format:

 { pixelformat = 'MJPG', description = 'MJPEG' }
 { discrete: width = 160, height = 120 }
     Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, 
 { discrete: width = 176, height = 144 }
     Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, 
 { discrete: width = 320, height = 240 }
     Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, 
 { discrete: width = 352, height = 288 }
     Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, 
 { discrete: width = 640, height = 480 }
     Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, 
 { discrete: width = 800, height = 600 }
     Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, 
 { discrete: width = 960, height = 720 }
     Time interval between frame: 1/15, 1/10, 1/5, 
 { pixelformat = 'YUYV', description = 'YUV 4:2:2 (YUYV)' }
 { discrete: width = 160, height = 120 }
     Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, 
 { discrete: width = 176, height = 144 }
     Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, 
 { discrete: width = 320, height = 240 }
     Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, 
 { discrete: width = 352, height = 288 }
     Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, 
 { discrete: width = 640, height = 480 }
     Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, 
 { discrete: width = 800, height = 600 }
     Time interval between frame: 1/25, 1/20, 1/15, 1/10, 1/5, 
 { discrete: width = 960, height = 720 }
     Time interval between frame: 1/10, 1/5, 
 { discrete: width = 1600, height = 1200 }
     Time interval between frame: 1/5, 
 { pixelformat = 'RGB3', description = 'RGB3' }
 { discrete: width = 160, height = 120 }
     Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, 
 { discrete: width = 176, height = 144 }
     Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, 
 { discrete: width = 320, height = 240 }
     Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, 
 { discrete: width = 352, height = 288 }
     Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, 
 { discrete: width = 640, height = 480 }
     Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, 
 { discrete: width = 800, height = 600 }
     Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, 
 { discrete: width = 960, height = 720 }
     Time interval between frame: 1/15, 1/10, 1/5, 
 { discrete: width = 1600, height = 1200 }
     Time interval between frame: 1/5, 
 { pixelformat = 'BGR3', description = 'BGR3' }
 { discrete: width = 160, height = 120 }
     Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, 
 { discrete: width = 176, height = 144 }
     Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, 
 { discrete: width = 320, height = 240 }
     Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, 
 { discrete: width = 352, height = 288 }
     Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, 
 { discrete: width = 640, height = 480 }
     Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, 
 { discrete: width = 800, height = 600 }
     Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, 
 { discrete: width = 960, height = 720 }
     Time interval between frame: 1/15, 1/10, 1/5, 
 { discrete: width = 1600, height = 1200 }
     Time interval between frame: 1/5, 
 { pixelformat = 'YU12', description = 'YU12' }
 { discrete: width = 160, height = 120 }
     Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, 
 { discrete: width = 176, height = 144 }
     Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, 
 { discrete: width = 320, height = 240 }
     Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, 
 { discrete: width = 352, height = 288 }
     Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, 
 { discrete: width = 640, height = 480 }
     Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, 
 { discrete: width = 800, height = 600 }
     Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, 
 { discrete: width = 960, height = 720 }
     Time interval between frame: 1/15, 1/10, 1/5, 
 { discrete: width = 1600, height = 1200 }
     Time interval between frame: 1/5, 
 { pixelformat = 'YV12', description = 'YV12' }
 { discrete: width = 160, height = 120 }
     Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, 
 { discrete: width = 176, height = 144 }
     Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, 
 { discrete: width = 320, height = 240 }
     Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, 
 { discrete: width = 352, height = 288 }
     Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, 
 { discrete: width = 640, height = 480 }
     Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, 
 { discrete: width = 800, height = 600 }
     Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 1/5, 
 { discrete: width = 960, height = 720 }
     Time interval between frame: 1/15, 1/10, 1/5, 
 { discrete: width = 1600, height = 1200 }
     Time interval between frame: 1/5,


Autofocus

Autofocus is built into the wintendo drives, thus does not work in Linux.

Q: How can we manually control focus in Linux?
A: Yes, guvcview can control focus and also has autofocus functionality

References

  1. 1.0 1.1 http://guvcview.berlios.de/
  2. http://www.quickcamteam.net/software/linux/v4l2-software/
  3. http://www.unicap-imaging.org/