I bought a Logitech Streamcam to get 1080p60 webcam input and I was used to webcams just working in Linux. It does work, but for uncompressed video, the best mode I can set is 1080p with all of 5 fps. I am not able to use the 1080p60 mode that this camera supports (it even says so above the lens). Even compressed MJPEG only goes to 30fps on 1920×1080. v4l2-ctl flat out refuses an attempt to set higher fps values and just falls back to 5fps.
dmesg says the following when I plug it in:
[ 415.860457] usb 3-4: New USB device found, idVendor=046d, idProduct=0893, bcdDevice= 0.17
[ 415.860460] usb 3-4: New USB device strings: Mfr=0, Product=2, SerialNumber=3
[ 415.860462] usb 3-4: Product: Logitech StreamCam
[ 415.860463] usb 3-4: SerialNumber: 599D4A05
[ 415.908735] uvcvideo: Found UVC 1.00 device Logitech StreamCam (046d:0893)
[ 415.919323] uvcvideo 3-4:1.0: Entity type for entity Processing 3 was not initialized!
[ 415.919326] uvcvideo 3-4:1.0: Entity type for entity Extension 14 was not initialized!
[ 415.919327] uvcvideo 3-4:1.0: Entity type for entity Extension 6 was not initialized!
[ 415.919329] uvcvideo 3-4:1.0: Entity type for entity Extension 8 was not initialized!
[ 415.919330] uvcvideo 3-4:1.0: Entity type for entity Extension 9 was not initialized!
[ 415.919332] uvcvideo 3-4:1.0: Entity type for entity Extension 10 was not initialized!
[ 415.919333] uvcvideo 3-4:1.0: Entity type for entity Extension 11 was not initialized!
[ 415.919334] uvcvideo 3-4:1.0: Entity type for entity Camera 1 was not initialized!
[ 415.919400] input: Logitech StreamCam as /devices/pci0000:00/0000:00:01.2/0000:01:00.0/0000:02:08.0/0000:04:00.3/usb3/3-4/3-4:1.0/input/input19
[ 415.942811] usb 3-4: current rate 16000 is different from the runtime rate 24000
[ 415.958807] usb 3-4: current rate 16000 is different from the runtime rate 32000
[ 415.974807] usb 3-4: current rate 16000 is different from the runtime rate 48000
[ 415.997674] hid-generic 0003:046D:0893.0006: hiddev0,hidraw0: USB HID v1.11 Device [Logitech StreamCam] on usb-0000:04:00.3-4/input5
[ 416.646810] usb 3-4: current rate 16000 is different from the runtime rate 48000
[ 416.678806] usb 3-4: current rate 16000 is different from the runtime rate 48000
[ 416.710805] usb 3-4: current rate 16000 is different from the runtime rate 48000
This is from v4l2-ctl:
ioctl: VIDIOC_ENUM_FMT
Type: Video Capture
[0]: 'YUYV' (YUYV 4:2:2)
Size: Discrete 640x480
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.042s (24.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Interval: Discrete 0.200s (5.000 fps)
Size: Discrete 176x144
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.042s (24.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Interval: Discrete 0.200s (5.000 fps)
Size: Discrete 320x240
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.042s (24.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Interval: Discrete 0.200s (5.000 fps)
Size: Discrete 424x240
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.042s (24.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Interval: Discrete 0.200s (5.000 fps)
Size: Discrete 640x360
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.042s (24.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Interval: Discrete 0.200s (5.000 fps)
Size: Discrete 848x480
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.042s (24.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Interval: Discrete 0.200s (5.000 fps)
Size: Discrete 960x540
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Interval: Discrete 0.200s (5.000 fps)
Size: Discrete 1280x720
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Interval: Discrete 0.200s (5.000 fps)
Size: Discrete 1600x896
Interval: Discrete 0.133s (7.500 fps)
Interval: Discrete 0.200s (5.000 fps)
Size: Discrete 1920x1080
Interval: Discrete 0.200s (5.000 fps)
[1]: 'MJPG' (Motion-JPEG, compressed)
Size: Discrete 640x480
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.042s (24.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Interval: Discrete 0.200s (5.000 fps)
Size: Discrete 176x144
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.042s (24.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Interval: Discrete 0.200s (5.000 fps)
Size: Discrete 320x240
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.042s (24.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Interval: Discrete 0.200s (5.000 fps)
Size: Discrete 424x240
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.042s (24.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Interval: Discrete 0.200s (5.000 fps)
Size: Discrete 640x360
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.042s (24.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Interval: Discrete 0.200s (5.000 fps)
Size: Discrete 848x480
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.042s (24.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Interval: Discrete 0.200s (5.000 fps)
Size: Discrete 960x540
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.042s (24.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Interval: Discrete 0.200s (5.000 fps)
Size: Discrete 1280x720
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.042s (24.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Interval: Discrete 0.200s (5.000 fps)
Size: Discrete 1600x896
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.042s (24.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Interval: Discrete 0.200s (5.000 fps)
Size: Discrete 1920x1080
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.042s (24.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Interval: Discrete 0.200s (5.000 fps)
Finally, I have both /dev/video0
and /dev/video1
after plugging in the camera, but only video0
will work.
I don't think it's because it doesn't get recognized as USB3 and therefore not having enough bandwidth for uncompressed 1080p60, because inspecting it with lsusb -vvv
I get this:
Bus 004 Device 003: ID 046d:0893 Logitech, Inc.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 3.20
bDeviceClass 239 Miscellaneous Device
bDeviceSubClass 2
bDeviceProtocol 1 Interface Association
bMaxPacketSize0 9
idVendor 0x046d Logitech, Inc.
idProduct 0x0893
bcdDevice 3.17
iManufacturer 0
iProduct 2 Logitech StreamCam
[...]
SuperSpeed USB Device Capability:
bLength 10
bDescriptorType 16
bDevCapabilityType 3
bmAttributes 0x00
wSpeedsSupported 0x000e
Device can operate at Full Speed (12Mbps)
Device can operate at High Speed (480Mbps)
Device can operate at SuperSpeed (5Gbps)
And finally, I'm using a recent 5.6 kernel:
$ uname -r
5.6.3-2-MANJARO
Best Answer
I guess my old answer was wrong. I recently bought the Logitech StreamCam myself and for me it works under Ubuntu 20.04 (kernel 5.4.0) on my Intel-based laptop. I get the same kernel messages as posted by @Anpan in the OP (see also my answer to @adam-przedniczek's question on AskUbuntu. Using
guvcview
I managed to record a video at 1920×1080@60fps (note, theCheese
doesn't record at 60fps, but that is probably because I can't set that option anywhere in its settings).However, I get erratic behaviour (kernel oopses, the StreamCam disappearing from the USB bus, hanging
guvcview
) when I try to run the StreamCam at 1920×1080 (any frame rate) on my desktop PC that has an AMD B450 chipset and Ryzen 5 3600 CPU.So maybe your problem is related to the USB controller you use. Do you have an Intel CPU or one from AMD? What is the USB controller to which you connect the StreamCam? On my Intel-based laptop it is:
Old answer
I think this may have something to do with lack of full support for UVC (USB Video Class) v1.5 in Linux. The Wikipedia page for UVC says the following about Linux support:
Your log info shows that the camera is detected as UVC v1.00. I guess the 60fps requires the MPEG-2 TS support.