Difference between revisions of "Logitech QuickCam Pro 9000"

From MyLabWiki
Jump to: navigation, search
(Drivers and Applications)
(Pixel formats)
Line 143: Line 143:
 
       Time interval between frame: 1/5,
 
       Time interval between frame: 1/5,
  
 
+
'''TODO:''' What do these pixel formats correspond to in fourcc jargon? I can see YUYV being the same as YUY2 but what about the rest?
  
 
=== Autofocus ===
 
=== Autofocus ===

Revision as of 17:21, 19 June 2010


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

Gstreamer

The camera works with Gstreamer[2]. More details and examples on Gstreamer Cheatsheet.

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[3] and Unicap[4].

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,

TODO: What do these pixel formats correspond to in fourcc jargon? I can see YUYV being the same as YUY2 but what about the rest?

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://gstreamer.freedesktop.org/
  3. http://www.quickcamteam.net/software/linux/v4l2-software/
  4. http://www.unicap-imaging.org/