有人知道为什么我的网络摄像头可以在 luvcview 中工作,但在 cheese、vlc、firefox 等中却不能工作吗?
VLC 似乎根本无法从相机捕获任何东西。cheesy 可以工作大约 2 秒钟,但视频是半黑的,并且有水平线穿过。Firefox getUserMedia 示例从不调用 loadeddata 回调。
luvcview 可以正确显示网络摄像头视频,并能够将其捕获到 avi 文件中。有什么线索告诉我应该从哪里开始查找吗?以下是网络摄像头的 lsusb 转储和 luvcview 支持的格式列表:
$sudo lsusb-d 0bda:579f-v
Bus 001 Device 006: ID 0bda:579f Realtek Semiconductor Corp.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.01
bDeviceClass 239 Miscellaneous Device
bDeviceSubClass 2 ?
bDeviceProtocol 1 Interface Association
bMaxPacketSize0 64
idVendor 0x0bda Realtek Semiconductor Corp.
idProduct 0x579f
bcdDevice 0.02
iManufacturer 3 11121119-000G824F6
iProduct 1 USB Camera
iSerial 2 200901010001
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 785
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 4 USB Camera
bmAttributes 0x80
(Bus Powered)
MaxPower 500mA
Interface Association:
bLength 8
bDescriptorType 11
bFirstInterface 0
bInterfaceCount 2
bFunctionClass 14 Video
bFunctionSubClass 3 Video Interface Collection
bFunctionProtocol 0
iFunction 5 USB Camera
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 14 Video
bInterfaceSubClass 1 Video Control
bInterfaceProtocol 0
iInterface 5 USB Camera
VideoControl Interface Descriptor:
bLength 13
bDescriptorType 36
bDescriptorSubtype 1 (HEADER)
bcdUVC 1.00
wTotalLength 78
dwClockFrequency 15.000000MHz
bInCollection 1
baInterfaceNr( 0) 1
VideoControl Interface Descriptor:
bLength 18
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 1
wTerminalType 0x0201 Camera Sensor
bAssocTerminal 0
iTerminal 0
wObjectiveFocalLengthMin 0
wObjectiveFocalLengthMax 0
wOcularFocalLength 0
bControlSize 3
bmControls 0x00000004
Auto-Exposure Priority
VideoControl Interface Descriptor:
bLength 11
bDescriptorType 36
bDescriptorSubtype 5 (PROCESSING_UNIT)
Warning: Descriptor too short
bUnitID 2
bSourceID 1
wMaxMultiplier 0
bControlSize 2
bmControls 0x0000177f
Brightness
Contrast
Hue
Saturation
Sharpness
Gamma
White Balance Temperature
Backlight Compensation
Gain
Power Line Frequency
White Balance Temperature, Auto
iProcessing 0
bmVideoStandards 0x 9
None
SECAM - 625/50
VideoControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 3
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bSourceID 4
iTerminal 0
VideoControl Interface Descriptor:
bLength 27
bDescriptorType 36
bDescriptorSubtype 6 (EXTENSION_UNIT)
bUnitID 4
guidExtensionCode {8ca72912-b447-9440-b0ce-db07386fb938}
bNumControl 2
bNrPins 1
baSourceID( 0) 2
bControlSize 2
bmControls( 0) 0x00
bmControls( 1) 0x06
iExtension 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0010 1x 16 bytes
bInterval 6
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 14 Video
bInterfaceSubClass 2 Video Streaming
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 1
INTERFACE CLASS: 0f 24 01 02 8d 02 81 00 03 02 01 00 01 00 00
INTERFACE CLASS: 1b 24 04 01 08 59 55 59 32 00 00 10 00 80 00 00 aa 00 38 9b 71 10 01 00 00 00 00
INTERFACE CLASS: 22 24 05 01 00 80 02 e0 01 00 00 65 04 00 00 ca 08 00 60 09 00 15 16 05 00 02 15 16 05 00 2a 2c 0a 00
INTERFACE CLASS: 22 24 05 02 00 a0 00 78 00 00 50 46 00 00 a0 8c 00 00 96 00 00 15 16 05 00 02 15 16 05 00 2a 2c 0a 00
INTERFACE CLASS: 22 24 05 03 00 b0 00 90 00 00 d0 5c 00 00 a0 b9 00 00 c6 00 00 15 16 05 00 02 15 16 05 00 2a 2c 0a 00
INTERFACE CLASS: 22 24 05 04 00 40 01 f0 00 00 40 19 01 00 80 32 02 00 58 02 00 15 16 05 00 02 15 16 05 00 2a 2c 0a 00
INTERFACE CLASS: 22 24 05 05 00 00 05 d0 02 00 00 65 04 00 00 ca 08 00 20 1c 00 40 42 0f 00 02 40 42 0f 00 80 84 1e 00
INTERFACE CLASS: 22 24 05 06 00 00 05 20 03 00 00 e2 04 00 00 c4 09 00 40 1f 00 40 42 0f 00 02 40 42 0f 00 80 84 1e 00
INTERFACE CLASS: 1e 24 05 07 00 00 05 00 04 00 00 40 06 00 00 40 06 00 00 28 00 80 84 1e 00 01 80 84 1e 00
INTERFACE CLASS: 1e 24 05 08 00 80 07 38 04 00 40 e3 09 00 40 e3 09 00 48 3f 00 80 84 1e 00 01 80 84 1e 00
INTERFACE CLASS: 1a 24 03 00 05 80 02 e0 01 00 05 d0 02 00 05 20 03 00 04 00 03 80 07 38 04 00
INTERFACE CLASS: 06 24 0d 01 01 04
INTERFACE CLASS: 0b 24 06 02 08 01 01 00 00 00 00
INTERFACE CLASS: 22 24 07 01 00 80 02 e0 01 00 00 65 04 00 00 ca 08 00 60 09 00 15 16 05 00 02 15 16 05 00 2a 2c 0a 00
INTERFACE CLASS: 22 24 07 02 00 a0 00 78 00 00 50 46 00 00 a0 8c 00 00 96 00 00 15 16 05 00 02 15 16 05 00 2a 2c 0a 00
INTERFACE CLASS: 22 24 07 03 00 b0 00 90 00 00 d0 5c 00 00 a0 b9 00 00 c6 00 00 15 16 05 00 02 15 16 05 00 2a 2c 0a 00
INTERFACE CLASS: 22 24 07 04 00 40 01 f0 00 00 40 19 01 00 80 32 02 00 58 02 00 15 16 05 00 02 15 16 05 00 2a 2c 0a 00
INTERFACE CLASS: 22 24 07 05 00 00 05 d0 02 00 00 2f 0d 00 00 5e 1a 00 20 1c 00 15 16 05 00 02 15 16 05 00 2a 2c 0a 00
INTERFACE CLASS: 22 24 07 06 00 00 05 20 03 00 00 a6 0e 00 00 4c 1d 00 40 1f 00 15 16 05 00 02 15 16 05 00 2a 2c 0a 00
INTERFACE CLASS: 22 24 07 07 00 00 05 00 04 00 00 c0 12 00 00 80 25 00 00 28 00 15 16 05 00 02 15 16 05 00 2a 2c 0a 00
INTERFACE CLASS: 22 24 07 08 00 80 07 38 04 00 c0 a9 1d 00 80 53 3b 00 48 3f 00 15 16 05 00 02 15 16 05 00 2a 2c 0a 00
INTERFACE CLASS: 1a 24 03 00 05 80 02 e0 01 00 05 d0 02 00 05 20 03 00 04 00 03 80 07 38 04 00
INTERFACE CLASS: 06 24 0d 01 01 04
Binary Object Store Descriptor:
bLength 5
bDescriptorType 15
wTotalLength 12
bNumDeviceCaps 1
USB 2.0 Extension Device Capability:
bLength 7
bDescriptorType 16
bDevCapabilityType 2
bmAttributes 0x00000006
Link Power Management (LPM) Supported
Device Status: 0x0000
(Bus Powered)
$ luvcview-L
luvcview 0.2.6
SDL information:
Video driver: x11
A window manager is available
Device information:
Device path: /dev/video0
{ pixelformat = 'YUYV', description = 'YUV 4:2:2 (YUYV)' }
{ discrete: width = 640, height = 480 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 160, height = 120 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 176, height = 144 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 320, height = 240 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 1280, height = 720 }
Time interval between frame: 1/10, 1/5,
{ discrete: width = 1280, height = 800 }
Time interval between frame: 1/10, 1/5,
{ discrete: width = 1280, height = 1024 }
Time interval between frame: 1/5,
{ discrete: width = 1920, height = 1080 }
Time interval between frame: 1/5,
{ pixelformat = 'MJPG', description = 'MJPEG' }
{ discrete: width = 640, height = 480 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 160, height = 120 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 176, height = 144 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 320, height = 240 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 1280, height = 720 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 1280, height = 800 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 1280, height = 1024 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 1920, height = 1080 }
Time interval between frame: 1/30, 1/15,
{ pixelformat = 'RGB3', description = 'RGB3' }
{ discrete: width = 640, height = 480 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 160, height = 120 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 176, height = 144 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 320, height = 240 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 1280, height = 720 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 1280, height = 800 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 1280, height = 1024 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 1920, height = 1080 }
Time interval between frame: 1/30, 1/15,
{ pixelformat = 'BGR3', description = 'BGR3' }
{ discrete: width = 640, height = 480 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 160, height = 120 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 176, height = 144 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 320, height = 240 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 1280, height = 720 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 1280, height = 800 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 1280, height = 1024 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 1920, height = 1080 }
Time interval between frame: 1/30, 1/15,
{ pixelformat = 'YU12', description = 'YU12' }
{ discrete: width = 640, height = 480 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 160, height = 120 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 176, height = 144 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 320, height = 240 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 1280, height = 720 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 1280, height = 800 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 1280, height = 1024 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 1920, height = 1080 }
Time interval between frame: 1/30, 1/15,
{ pixelformat = 'YV12', description = 'YV12' }
{ discrete: width = 640, height = 480 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 160, height = 120 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 176, height = 144 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 320, height = 240 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 1280, height = 720 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 1280, height = 800 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 1280, height = 1024 }
Time interval between frame: 1/30, 1/15,
{ discrete: width = 1920, height = 1080 }
Time interval between frame: 1/30, 1/15,
答案1
我的 Razer Blade 2015 中有一个类似的 Realtek 设备,只要将其设置为 720p,它就可以与所有设备配合使用。它可能可以在较低的分辨率下工作,但这就是我测试的全部内容。
我有一个 1080p USB 摄像头,有时会用到,但这个摄像头的分辨率设置太高了。我将其切换到 720p,然后重启 cheese,它就可以正常工作了。