Difference between revisions of "Logitech QuickCam Pro 9000"

From MyLabWiki
Jump to: navigation, search
(Features)
(Pixel formats)
 
(17 intermediate revisions by one user not shown)
Line 1: Line 1:
[[Category:Video Processing]]
+
Related cameras: [[Logitech QuickCam Vision Pro 9000]] for Mac and the successor [[Logitech Webcam Pro 9000]].
  
== Initial Notes ==
+
== Drivers and Applications ==
 
+
=== 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. Holy crap!
+
=== GTK+ UVC Viewer ===
  
=== Linux ===
+
The GTK+ UVC Viewer<ref name="guvcview">http://guvcview.berlios.de/</ref> (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.
  
* Camera detected and mounted as /dev/video0
+
When the camera is used for the first time after boot, one has to execute
* Most apps are completely dysfunctional and useless (as usual)
+
  
==== uvccapture ====
+
  $> sudo guvcview -a
Works fine
+
* width and height: OK
+
* Brightness: TBD
+
* Contrast: TBD
+
* Saturation: TBD
+
* Gain: TBD
+
* Supported image sizes: [[:Image:Snap160.jpg|160x120]], [[:Image:Snap176.jpg|176x144]], [[:Image:Snap320.jpg|320x240]], [[:Image:Snap352.jpg|352x288]], [[:Image:Snap640.jpg|640x480]], [[:Image:Snap960.jpg|960x720]], [[:Image:Snap1600.jpg|1600x1200]]
+
* Video sizes @ fps: TBD
+
  
==== guvcview ====
+
to detect and add all the supported controls. Note: this may not be necessary if libwebcam is installed (TBC).
  
Works! and has many interesting controls. This is the app to use!
 
 
* Can capture video
 
* Can capture video
 
* Can capture audio &ndash; GNOME sound mixer panel applet can control audio input level and it sounds good. Mute works too!
 
* Can capture audio &ndash; GNOME sound mixer panel applet can control audio input level and it sounds good. Mute works too!
Line 30: Line 18:
 
* Can be run in control mode only so that the video is captured by another application by guvcview is used to adjust settings
 
* Can be run in control mode only so that the video is captured by another application by guvcview is used to adjust settings
  
==== Others ====
+
=== Gstreamer ===
  
Try the others from http://www.quickcamteam.net/software/linux/v4l2-software/
+
The camera works with Gstreamer<ref>http://gstreamer.freedesktop.org/</ref>. More details and examples on [[Gstreamer Cheatsheet]].
* http://www.unicap-imaging.org/
+
  
Programming: http://www.quickcamteam.net/software/libwebcam
+
=== 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<ref>http://www.quickcamteam.net/software/linux/v4l2-software/</ref> and Unicap<ref>http://www.unicap-imaging.org/</ref>.
 +
 
 +
For programming Libwebcam</ref>http://www.quickcamteam.net/software/libwebcam</ref> can be used.
  
 
== Features ==
 
== Features ==
Line 41: Line 40:
 
=== Pixel formats ===
 
=== Pixel formats ===
  
When starting guvcview<ref name="guvcview"/> it dumps the supported pixel formats together with the resolutions and frame rates that can be used for each format:
+
When starting guvcview<ref name="guvcview"/> it dumps the supported pixel formats together with the resolutions and frame rates that can be used for each format (see also [[Pixel formats]]):
  
 
   '''{ pixelformat = 'MJPG', description = 'MJPEG' }'''
 
   '''{ pixelformat = 'MJPG', description = 'MJPEG' }'''
Line 144: Line 143:
 
       Time interval between frame: 1/5,
 
       Time interval between frame: 1/5,
  
 +
I'm not quite sure about all these pixel formats and how they map to fourcc names.
  
 +
According to the UVC specs<ref>USB: Approved Class Specification Documents, http://www.usb.org/developers/devclass_docs</ref>: ''The USB Video Class supports one packed 4:2:2 YUV format (YUY2) and one planar 4:2:0 YUV format (NV12).''
 +
 +
The NV12 format doesn't seem to work with the QuickCam Pro 9000, at least not in gstreamer, but YV12 does. Try one of these:
 +
  gst-launch v4l2src ! video/x-raw-yuv,format=\(fourcc\)YUY2,width=640,height=480,framerate=10/1 ! xvimagesink
 +
  gst-launch v4l2src ! video/x-raw-yuv,format=\(fourcc\)YV12,width=640,height=480,framerate=10/1 ! xvimagesink
 +
 +
and this won't work:
 +
  gst-launch v4l2src ! video/x-raw-yuv,format=\(fourcc\)NV12,width=640,height=480,framerate=10/1 ! xvimagesink
  
 
=== Autofocus ===
 
=== Autofocus ===
Line 152: Line 160:
 
Q: How can we manually control focus in Linux?<br/>
 
Q: How can we manually control focus in Linux?<br/>
 
A: Yes, guvcview can control focus and also has autofocus functionality
 
A: Yes, guvcview can control focus and also has autofocus functionality
 +
 +
=== Lens ===
 +
 +
According to the specs the camera has a Zeiss lens<ref>[http://www.logitech.com/da-dk/webcam_communications/webcams/devices/5867 Logitech Specs]</ref>. Although it is quite all right compared to other webcams, the image lacks sharpness around the edges and this is very visible and annoying on outdoor pictures.
 +
 +
<span style="color:red">'''Update:''' I have reason to believe that the lack of sharpness was cause by the camera being behind a window - TBC.</span>
 +
 +
[[Image:QCP9kSampleImage.png|600px]]
 +
 +
The above image was taken on Linux using Guvcview; however, the problem also exists when using the windows software that came with the camera:
 +
 +
[[Image:QCP9kSampleImageWin.jpg|600px]]
 +
 +
My [[Logitech QuickCam Vision Pro 9000]] appears to have a better sharpness at the edges.
  
 
== References ==
 
== References ==
  
* http://www.quickcamteam.net/
+
<references/>
* http://ghonis2.ho8.com/Pro9000a.html &ndash; also includes info about modifying the cam!
+
 
 +
[[Category:Cameras]]
 +
[[Category:Video Processing]]

Latest revision as of 14:58, 27 August 2010

Related cameras: Logitech QuickCam Vision Pro 9000 for Mac and the successor Logitech Webcam Pro 9000.

Contents

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 (see also Pixel formats):

 { 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,

I'm not quite sure about all these pixel formats and how they map to fourcc names.

According to the UVC specs[5]: The USB Video Class supports one packed 4:2:2 YUV format (YUY2) and one planar 4:2:0 YUV format (NV12).

The NV12 format doesn't seem to work with the QuickCam Pro 9000, at least not in gstreamer, but YV12 does. Try one of these:

 gst-launch v4l2src ! video/x-raw-yuv,format=\(fourcc\)YUY2,width=640,height=480,framerate=10/1 ! xvimagesink
 gst-launch v4l2src ! video/x-raw-yuv,format=\(fourcc\)YV12,width=640,height=480,framerate=10/1 ! xvimagesink

and this won't work:

 gst-launch v4l2src ! video/x-raw-yuv,format=\(fourcc\)NV12,width=640,height=480,framerate=10/1 ! xvimagesink

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

Lens

According to the specs the camera has a Zeiss lens[6]. Although it is quite all right compared to other webcams, the image lacks sharpness around the edges and this is very visible and annoying on outdoor pictures.

Update: I have reason to believe that the lack of sharpness was cause by the camera being behind a window - TBC.

QCP9kSampleImage.png

The above image was taken on Linux using Guvcview; however, the problem also exists when using the windows software that came with the camera:

QCP9kSampleImageWin.jpg

My Logitech QuickCam Vision Pro 9000 appears to have a better sharpness at the edges.

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/
  5. USB: Approved Class Specification Documents, http://www.usb.org/developers/devclass_docs
  6. Logitech Specs