public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
* capture high resolution images from webcam
@ 2015-03-17 21:35 Oliver Lehmann
  2015-03-18 21:49 ` Guennadi Liakhovetski
  0 siblings, 1 reply; 9+ messages in thread
From: Oliver Lehmann @ 2015-03-17 21:35 UTC (permalink / raw)
  To: linux-media

Hi,

I'm using v4l2 on FreeBSD but I hope this doesn't matter that much.
I got a new MS LifeCam Studio HD which makes quite good pictures
because of its focus possibilites.

When I use the original software provided by MS the "autofocus"
feature works damn good. With v4l2, autofocus is enabled but it
just does not focus. Disabling autofocus and setting focus manually
does work (and in my case this is sufficient)

Another point is, that this cam can record pictures with 8 megapixel
which results in 3840x2160 image files. This "8MP mode" and the 1080p
mode is only available for snapshot pictures. The highest resolution
supported for videos is 720p.

All I want is recording snapshot images and I do not need the video
capability at all.

I wonder how I can capture those big 8MP images? With mplayer I'm
only able toe capture 720p at max. I guess because mplayer just
accesses the video mode and takes a single frame.

mplayer tv:// -tv driver=v4l2:device=/dev/video0:width=1280:height=720  
-frames 1 -vo jpeg

I wonder if there is a possibility to access the cam in the
I-call-it-snapshot-mode to take single pictures with higher resolutions?

Regards, Oliver

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: capture high resolution images from webcam
  2015-03-17 21:35 capture high resolution images from webcam Oliver Lehmann
@ 2015-03-18 21:49 ` Guennadi Liakhovetski
  2015-03-19  5:57   ` Oliver Lehmann
  2015-03-19 16:10   ` Laurent Pinchart
  0 siblings, 2 replies; 9+ messages in thread
From: Guennadi Liakhovetski @ 2015-03-18 21:49 UTC (permalink / raw)
  To: Oliver Lehmann; +Cc: Linux Media Mailing List, Laurent Pinchart

Hi Oliver,

On Tue, 17 Mar 2015, Oliver Lehmann wrote:

> Hi,
> 
> I'm using v4l2 on FreeBSD but I hope this doesn't matter that much.
> I got a new MS LifeCam Studio HD which makes quite good pictures
> because of its focus possibilites.
> 
> When I use the original software provided by MS the "autofocus"
> feature works damn good. With v4l2, autofocus is enabled but it
> just does not focus. Disabling autofocus and setting focus manually
> does work (and in my case this is sufficient)
> 
> Another point is, that this cam can record pictures with 8 megapixel
> which results in 3840x2160 image files. This "8MP mode" and the 1080p
> mode is only available for snapshot pictures. The highest resolution
> supported for videos is 720p.

I'm not sure I can help, at least definitely not until I know details. But 
in either case I'd be interested to know details of this camera. Can you 
find out what driver is serving it, what standard it is? Looking at the 
Microsoft so veeeery "technical" data sheet it says, it is compatible with 
Android. So, it hints at it being a UVC camera.

As for the actual question, I have no idea how they implement still 
images: the UVC standard defines two methods for higher-resolution still 
image capture: either using the "still image trigger control" or a 
dedicated bulk pipeline (and a hardware button if there is one on your 
camera?) FWIW, in either case I'm not sure whether the driver supports any 
of those methods. I think bulk pipe support has been added to it at some 
point, but what concerns switching... Not sure really, sorry.

But if you just try to be opportunistic and try cheese - it has a separate 
setting for still images, so, maybe I'm way behind the time and everything 
is working already?

Thanks
Guennadi

> All I want is recording snapshot images and I do not need the video
> capability at all.
> 
> I wonder how I can capture those big 8MP images? With mplayer I'm
> only able toe capture 720p at max. I guess because mplayer just
> accesses the video mode and takes a single frame.
> 
> mplayer tv:// -tv driver=v4l2:device=/dev/video0:width=1280:height=720 -frames
> 1 -vo jpeg
> 
> I wonder if there is a possibility to access the cam in the
> I-call-it-snapshot-mode to take single pictures with higher resolutions?
> 
> Regards, Oliver
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: capture high resolution images from webcam
  2015-03-18 21:49 ` Guennadi Liakhovetski
@ 2015-03-19  5:57   ` Oliver Lehmann
  2015-03-19 16:09     ` Laurent Pinchart
  2015-03-19 16:10   ` Laurent Pinchart
  1 sibling, 1 reply; 9+ messages in thread
From: Oliver Lehmann @ 2015-03-19  5:57 UTC (permalink / raw)
  To: Guennadi Liakhovetski; +Cc: Linux Media Mailing List, Laurent Pinchart

Hi Guennadi,

Guennadi Liakhovetski <g.liakhovetski@gmx.de> wrote:

> As for the actual question, I have no idea how they implement still
> images: the UVC standard defines two methods for higher-resolution still
> image capture: either using the "still image trigger control" or a
> dedicated bulk pipeline (and a hardware button if there is one on your
> camera?) FWIW, in either case I'm not sure whether the driver supports any
> of those methods. I think bulk pipe support has been added to it at some
> point, but what concerns switching... Not sure really, sorry.

The cam has a button but it is labled with a phone receiver so I guess it
is not there for taking still images. The MS-Software on Windows has two
buttons - one for taking a photo and one for recording a video. If you switch
the resolution to 1080p or "8MP", the video button gets disabled and all
someone can do is capturing a photo. More informations about the cam:

root@reis /root> v4l2-ctl --info
Driver Info (not using libv4l2):
         Driver name   : uvcvideo
         Card type     : Microsoft LifeCam Studio(TM)
         Bus info      : usb-/dev/usb-/dev/usb
         Driver version: 2.6.38
         Capabilities  : 0x84000001
                 Video Capture
                 Streaming
root@reis /root> v4l2-ctl -L
                      brightness (int)    : min=30 max=255 step=1  
default=133 value=85
                        contrast (int)    : min=0 max=10 step=1  
default=5 value=5
                      saturation (int)    : min=0 max=200 step=1  
default=103 value=100
  white_balance_temperature_auto (bool)   : default=1 value=1
            power_line_frequency (menu)   : min=0 max=2 default=2 value=2
                                 0: Disabled
                                 1: 50 Hz
                                 2: 60 Hz
       white_balance_temperature (int)    : min=2500 max=10000 step=1  
default=4500 value=2500 flags=inactive
                       sharpness (int)    : min=0 max=50 step=1  
default=25 value=25
          backlight_compensation (int)    : min=0 max=10 step=1  
default=0 value=0
                   exposure_auto (menu)   : min=0 max=3 default=3 value=3
                                 1: Manual Mode
                                 3: Aperture Priority Mode
               exposure_absolute (int)    : min=1 max=10000 step=1  
default=156 value=156 flags=inactive
                    pan_absolute (int)    : min=-529200 max=529200  
step=3600 default=0 value=0
                   tilt_absolute (int)    : min=-432000 max=432000  
step=3600 default=0 value=0
                  focus_absolute (int)    : min=0 max=40 step=1  
default=0 value=28
                      focus_auto (bool)   : default=1 value=0
                   zoom_absolute (int)    : min=0 max=317 step=1  
default=0 value=0
root@reis /root>

The "nice" part is, that it has a real hardware focus which is fantastic
for my needs. The autofocus mode does not work with v4l2 somehow (image
gets not focused), but for my needs, a manual focus is OK. Thats why I
have autofocus disabled. I never tested capturing a video - maybe
autofocus works there when taking more than one frame because it needs
some time to focus ;)


> But if you just try to be opportunistic and try cheese - it has a separate
> setting for still images, so, maybe I'm way behind the time and everything
> is working already?

The problem is:- The system is a headless system - so no monitor and no Xorg
installation (some X11 dependencies are installed tho) and I guess cheese has
no commandline interface?

Regards,
Oliver

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: capture high resolution images from webcam
  2015-03-19  5:57   ` Oliver Lehmann
@ 2015-03-19 16:09     ` Laurent Pinchart
  2015-03-19 18:17       ` Oliver Lehmann
  0 siblings, 1 reply; 9+ messages in thread
From: Laurent Pinchart @ 2015-03-19 16:09 UTC (permalink / raw)
  To: Oliver Lehmann; +Cc: Guennadi Liakhovetski, Linux Media Mailing List

Hi Oliver,

On Thursday 19 March 2015 06:57:24 Oliver Lehmann wrote:
> Hi Guennadi,
> 
> Guennadi Liakhovetski <g.liakhovetski@gmx.de> wrote:
> > As for the actual question, I have no idea how they implement still
> > images: the UVC standard defines two methods for higher-resolution still
> > image capture: either using the "still image trigger control" or a
> > dedicated bulk pipeline (and a hardware button if there is one on your
> > camera?) FWIW, in either case I'm not sure whether the driver supports any
> > of those methods. I think bulk pipe support has been added to it at some
> > point, but what concerns switching... Not sure really, sorry.
> 
> The cam has a button but it is labled with a phone receiver so I guess it
> is not there for taking still images. The MS-Software on Windows has two
> buttons - one for taking a photo and one for recording a video. If you
> switch the resolution to 1080p or "8MP", the video button gets disabled and
> all someone can do is capturing a photo. More informations about the cam:
> 
> root@reis /root> v4l2-ctl --info
> Driver Info (not using libv4l2):
>          Driver name   : uvcvideo
>          Card type     : Microsoft LifeCam Studio(TM)
>          Bus info      : usb-/dev/usb-/dev/usb
>          Driver version: 2.6.38
>          Capabilities  : 0x84000001
>                  Video Capture
>                  Streaming
> root@reis /root> v4l2-ctl -L
>                       brightness (int)    : min=30 max=255 step=1
> default=133 value=85
>                         contrast (int)    : min=0 max=10 step=1
> default=5 value=5
>                       saturation (int)    : min=0 max=200 step=1
> default=103 value=100
>   white_balance_temperature_auto (bool)   : default=1 value=1
>             power_line_frequency (menu)   : min=0 max=2 default=2 value=2
>                                  0: Disabled
>                                  1: 50 Hz
>                                  2: 60 Hz
>        white_balance_temperature (int)    : min=2500 max=10000 step=1
> default=4500 value=2500 flags=inactive
>                        sharpness (int)    : min=0 max=50 step=1
> default=25 value=25
>           backlight_compensation (int)    : min=0 max=10 step=1
> default=0 value=0
>                    exposure_auto (menu)   : min=0 max=3 default=3 value=3
>                                  1: Manual Mode
>                                  3: Aperture Priority Mode
>                exposure_absolute (int)    : min=1 max=10000 step=1
> default=156 value=156 flags=inactive
>                     pan_absolute (int)    : min=-529200 max=529200
> step=3600 default=0 value=0
>                    tilt_absolute (int)    : min=-432000 max=432000
> step=3600 default=0 value=0
>                   focus_absolute (int)    : min=0 max=40 step=1
> default=0 value=28
>                       focus_auto (bool)   : default=1 value=0
>                    zoom_absolute (int)    : min=0 max=317 step=1
> default=0 value=0
> root@reis /root>

Could you please post the output of "lsusb -v" for your camera (running as 
root if possible) ?

> The "nice" part is, that it has a real hardware focus which is fantastic
> for my needs. The autofocus mode does not work with v4l2 somehow (image
> gets not focused), but for my needs, a manual focus is OK. Thats why I
> have autofocus disabled. I never tested capturing a video - maybe
> autofocus works there when taking more than one frame because it needs
> some time to focus ;)
> 
> > But if you just try to be opportunistic and try cheese - it has a separate
> > setting for still images, so, maybe I'm way behind the time and everything
> > is working already?
> 
> The problem is:- The system is a headless system - so no monitor and no Xorg
> installation (some X11 dependencies are installed tho) and I guess cheese
> has no commandline interface?

-- 
Regards,

Laurent Pinchart


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: capture high resolution images from webcam
  2015-03-18 21:49 ` Guennadi Liakhovetski
  2015-03-19  5:57   ` Oliver Lehmann
@ 2015-03-19 16:10   ` Laurent Pinchart
  1 sibling, 0 replies; 9+ messages in thread
From: Laurent Pinchart @ 2015-03-19 16:10 UTC (permalink / raw)
  To: Guennadi Liakhovetski; +Cc: Oliver Lehmann, Linux Media Mailing List

Hi Guennadi,

On Wednesday 18 March 2015 22:49:07 Guennadi Liakhovetski wrote:
> On Tue, 17 Mar 2015, Oliver Lehmann wrote:
> > Hi,
> > 
> > I'm using v4l2 on FreeBSD but I hope this doesn't matter that much.
> > I got a new MS LifeCam Studio HD which makes quite good pictures
> > because of its focus possibilites.
> > 
> > When I use the original software provided by MS the "autofocus"
> > feature works damn good. With v4l2, autofocus is enabled but it
> > just does not focus. Disabling autofocus and setting focus manually
> > does work (and in my case this is sufficient)
> > 
> > Another point is, that this cam can record pictures with 8 megapixel
> > which results in 3840x2160 image files. This "8MP mode" and the 1080p
> > mode is only available for snapshot pictures. The highest resolution
> > supported for videos is 720p.
> 
> I'm not sure I can help, at least definitely not until I know details. But
> in either case I'd be interested to know details of this camera. Can you
> find out what driver is serving it, what standard it is? Looking at the
> Microsoft so veeeery "technical" data sheet it says, it is compatible with
> Android. So, it hints at it being a UVC camera.
> 
> As for the actual question, I have no idea how they implement still
> images: the UVC standard defines two methods for higher-resolution still
> image capture: either using the "still image trigger control" or a
> dedicated bulk pipeline (and a hardware button if there is one on your
> camera?) FWIW, in either case I'm not sure whether the driver supports any
> of those methods. I think bulk pipe support has been added to it at some
> point, but what concerns switching... Not sure really, sorry.

Still image capture isn't implemented in the uvcvideo driver. Part of the 
reason is that I never managed to get my hands on a device that implements it 
(but I haven't tried very hard either).

> But if you just try to be opportunistic and try cheese - it has a separate
> setting for still images, so, maybe I'm way behind the time and everything
> is working already?
> 
> Thanks
> Guennadi
> 
> > All I want is recording snapshot images and I do not need the video
> > capability at all.
> > 
> > I wonder how I can capture those big 8MP images? With mplayer I'm
> > only able toe capture 720p at max. I guess because mplayer just
> > accesses the video mode and takes a single frame.
> > 
> > mplayer tv:// -tv driver=v4l2:device=/dev/video0:width=1280:height=720
> > -frames 1 -vo jpeg
> > 
> > I wonder if there is a possibility to access the cam in the
> > I-call-it-snapshot-mode to take single pictures with higher resolutions?

-- 
Regards,

Laurent Pinchart


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: capture high resolution images from webcam
  2015-03-19 16:09     ` Laurent Pinchart
@ 2015-03-19 18:17       ` Oliver Lehmann
  2015-03-19 18:20         ` Laurent Pinchart
  0 siblings, 1 reply; 9+ messages in thread
From: Oliver Lehmann @ 2015-03-19 18:17 UTC (permalink / raw)
  To: Laurent Pinchart; +Cc: Guennadi Liakhovetski, Linux Media Mailing List

Hi Laurent,

Laurent Pinchart <laurent.pinchart@ideasonboard.com> wrote:

> Could you please post the output of "lsusb -v" for your camera (running as
> root if possible) ?

No lsusb on FreeBSD but usbconfig - I hope the results are similar or are at
least close to what you are seeking for.

http://pastebin.com/s3ndu63h

Regards, Oliver

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: capture high resolution images from webcam
  2015-03-19 18:17       ` Oliver Lehmann
@ 2015-03-19 18:20         ` Laurent Pinchart
  2015-03-19 19:31           ` Oliver Lehmann
  0 siblings, 1 reply; 9+ messages in thread
From: Laurent Pinchart @ 2015-03-19 18:20 UTC (permalink / raw)
  To: Oliver Lehmann; +Cc: Guennadi Liakhovetski, Linux Media Mailing List

Hi Oliver,

On Thursday 19 March 2015 19:17:48 Oliver Lehmann wrote:
> Hi Laurent,
> 
> Laurent Pinchart <laurent.pinchart@ideasonboard.com> wrote:
> > Could you please post the output of "lsusb -v" for your camera (running as
> > root if possible) ?
> 
> No lsusb on FreeBSD but usbconfig - I hope the results are similar or are at
> least close to what you are seeking for.
> 
> http://pastebin.com/s3ndu63h

The information is there, but in a raw form, when lsusb can decode it. I'll 
let you do the homework then, two options:

1. Compile lsusb for freebsd
2. Get a copy of the UVC spec 
(http://www.usb.org/developers/docs/devclass_docs/USB_Video_Class_1_1_090711.zip) 
and decode the descriptors

Pick your poison :-)

-- 
Regards,

Laurent Pinchart


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: capture high resolution images from webcam
  2015-03-19 18:20         ` Laurent Pinchart
@ 2015-03-19 19:31           ` Oliver Lehmann
  2015-04-13 21:13             ` Laurent Pinchart
  0 siblings, 1 reply; 9+ messages in thread
From: Oliver Lehmann @ 2015-03-19 19:31 UTC (permalink / raw)
  To: Laurent Pinchart; +Cc: Guennadi Liakhovetski, Linux Media Mailing List

Hi Laurent,

I took the first option ;)

http://pastebin.com/7YUgS2Zt

Regards, Oliver

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: capture high resolution images from webcam
  2015-03-19 19:31           ` Oliver Lehmann
@ 2015-04-13 21:13             ` Laurent Pinchart
  0 siblings, 0 replies; 9+ messages in thread
From: Laurent Pinchart @ 2015-04-13 21:13 UTC (permalink / raw)
  To: Oliver Lehmann; +Cc: Guennadi Liakhovetski, Linux Media Mailing List

Hi Oliver,

On Thursday 19 March 2015 20:31:43 Oliver Lehmann wrote:
> Hi Laurent,
> 
> I took the first option ;)
> 
> http://pastebin.com/7YUgS2Zt

I have good news and bad news.

The good news is that the camera seems to support capturing video in 1920x1080 
natively, which is higher than the 720p you reported. This should work out of 
the box with the uvcvideo driver.

The bad news is that still image capture at higher resolutions isn't supported 
by the camera, or at least not in a UVC-compatible way. My guess is that 8MP 
is achieved either using software interpolation, or possibly using a vendor-
specific undocumented protocol. 

-- 
Regards,

Laurent Pinchart


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2015-04-13 21:13 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-03-17 21:35 capture high resolution images from webcam Oliver Lehmann
2015-03-18 21:49 ` Guennadi Liakhovetski
2015-03-19  5:57   ` Oliver Lehmann
2015-03-19 16:09     ` Laurent Pinchart
2015-03-19 18:17       ` Oliver Lehmann
2015-03-19 18:20         ` Laurent Pinchart
2015-03-19 19:31           ` Oliver Lehmann
2015-04-13 21:13             ` Laurent Pinchart
2015-03-19 16:10   ` Laurent Pinchart

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox