Improve default resolution for a Logitech C920 webcam?

jonsmirl at gmail.com jonsmirl at gmail.com
Fri Mar 7 06:32:05 PST 2014


C920 is one of the best webcams on the market. If you aren't getting good
performance out of it, it is the app that is misbehaving not the webcam.

Having said that in the last few years dual stream cameras have been
showing up. Those cameras support  two /dev/video devices. One device is
used to access the stream in uncompressed form for the local preview
display. The second stream is sent out onto the Internet in h.264 without
ever being decoded by the local app. Skype supports this camera type and
gives it Gold certification.

It could be that Hangouts wants one of these newer two-stream cameras.
 AFAIK there is no way to tell what kind of camera Hangouts wants and most
questions of this type to Google go unanswered.

With a single stream camera like the C920 Hangouts needs to decode two
compressed streams simultaneously - the local one from the C920 and the
remote one. Almost all desktops have plenty of CPU to do this. But instead
Google could be accessing the uncompressed stream from the C920 and then
software compressing it with VP8. 800x448 is the largest uncompressed
stream with 30fps available.  But that is a non-standard size. So next size
down if 640x480 for uncompressed.

What Hangouts should be doing is access the 720P h.264 stream and decode it
locally on any desktop with enough CPU power (which is 99% of them).

Here are the C920 formats....

jonsmirl at terra:/work/libav$ v4l2-ctl -d /dev/video1 --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
Index       : 0
Type        : Video Capture
Pixel Format: 'YUYV'
Name        : YUV 4:2:2 (YUYV)
Size: Discrete 640x480
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 160x90
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 160x120
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 176x144
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 320x180
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 320x240
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 352x288
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 432x240
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 640x360
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 800x448
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 800x600
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 864x480
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 960x720
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 1024x576
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 1280x720
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 1600x896
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 1920x1080
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 2304x1296
Interval: Discrete 0.500 s (2.000 fps)
Size: Discrete 2304x1536
Interval: Discrete 0.500 s (2.000 fps)

Index       : 1
Type        : Video Capture
Pixel Format: 'H264' (compressed)
Name        : H.264
Size: Discrete 640x480
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 160x90
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 160x120
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 176x144
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 320x180
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 320x240
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 352x288
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 432x240
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 640x360
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 800x448
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 800x600
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 864x480
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 960x720
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 1024x576
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 1280x720
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 1600x896
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 1920x1080
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)

Index       : 2
Type        : Video Capture
Pixel Format: 'MJPG' (compressed)
Name        : MJPEG
Size: Discrete 640x480
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 160x90
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 160x120
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 176x144
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 320x180
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 320x240
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 352x288
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 432x240
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 640x360
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 800x448
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 800x600
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 864x480
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 960x720
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 1024x576
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 1280x720
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 1600x896
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
Size: Discrete 1920x1080
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.042 s (24.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)

jonsmirl at terra:/work/libav$


On Thu, Mar 6, 2014 at 8:36 PM, Olivier Crête
<olivier.crete at collabora.com>wrote:

> Hi,
>
> You seem to be wrong, I can get 1920x1080 at 5fps as jpeg from my C920,
> if you want more FPS, you have to use H.264 because the USB bus isn't so
> fast. I can even run 2 C920s at 1280x720 at 10fps in jpeg mode.
>
> Olivier
>
> On Sun, 2014-03-02 at 14:13 -0800, Christian Kreibich wrote:
> > On 03/02/2014 12:33 PM, Stefan Sauer wrote:
> > > As you can see from the log, the camera is only providing up to 640x480
> > > as video/x-raw. Even image/jpeg is only produced up to 640x480. Higher
> > > resolutions are only provided as video/x-h264, which is most likely not
> > > what most VC apps handle automatically already.
> >
> > Yeah, got it. Thanks Stefan.
> >
> > (If anyone could recommend cameras to me off-list that work better on
> > Linux, I'd be grateful. Thanks.)
> >
> > -C.
> > _______________________________________________
> > gstreamer-devel mailing list
> > gstreamer-devel at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
> --
> Olivier Crête
> olivier.crete at collabora.com
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>



-- 
Jon Smirl
jonsmirl at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20140307/f1e62d20/attachment-0001.html>


More information about the gstreamer-devel mailing list