从 linux 命令行捕获图片(uvccapture 捕获黑色图片)

Posted

技术标签:

【中文标题】从 linux 命令行捕获图片(uvccapture 捕获黑色图片)【英文标题】:capture picture from linux command line (uvccapture captures black picture) 【发布时间】:2013-09-01 17:41:18 【问题描述】:

如题,当我运行时:

sudo uvccapture -S40 -C30 -G80 -B20 -x1280 -y720 -v

我得到一张黑色的大图(与 -m 标志相同的结果)

但是,当我跑步时:

sudo uvccapture -S40 -C30 -G80 -B20 -x1280 -y720 -v -t5

这意味着它将每 5 秒拍一张照片。 效果很好(图片还可以)。 但是我不能使用那个命令,因为它不会停止拍照。

你知道哪里出了问题吗?

结果:

Using videodevice: /dev/video0  
Saving images to: snap.jpg  
Image size: 1280x720  
Taking snapshot every 0 seconds  
Taking images using mmap  
Resetting camera settings  
ioctl querycontrol error 22  
Setting camera brightness to 20  
Setting camera contrast to 30  
Setting camera saturation to 40  
Setting camera gain to 80  
ioctl querycontrol error 22  
Saving image to: snap.jpg  

lsusb:

Bus 001 Device 004: ID 041e:4088 Creative Technology, Ltd

dmesg:

[3.192732] usb 1-1.3: new high-speed USB device number 4 using dwc_otg
[3.321292] usb 1-1.3: New USB device found, idVendor=041e, idProduct=4088
[3.334037] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[3.343098] usb 1-1.3: Product: VF0700 Live! Cam Chat HD
[3.350192] usb 1-1.3: Manufacturer: Creative Technology Ltd.
[3.357531] usb 1-1.3: SerialNumber: 2G130236
[3.949616] udevd[154]: starting version 175
[5.197753] Registered led device: led0
[5.294970] Linux media interface: v0.10
[5.499646] Linux video capture interface: v2.00
[6.009958] uvcvideo: Found UVC 1.00 device VF0700 Live! Cam Chat HD (041e:4088)
[6.210327] input: VF0700 Live! Cam Chat HD as /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3:1.0/input/input0
[6.369436] usbcore: registered new interface driver uvcvideo
[6.502467] USB Video Class driver (1.1.1)

【问题讨论】:

【参考方案1】:

有点奇怪的建议,但你尝试过使用

sudo uvccapture -S40 -C30 -G80 -B20 -x1280 -y720 -v -t0

这应该只需要一个镜头。试试这个,看看它会带来什么。我发现有时 uvccapture 需要那个额外的参数。但并非总是如此。

干杯。

【讨论】:

【参考方案2】:

我观察到与汤姆上述相同的行为:运行 uvccapture 而不指定“-t”选项会导致黑色图像,而使用“-t”运行它,其中 N 为非零,每 N 秒捕获一个有效图像。经过一番调查,我发现 uvccapture 对其“grab”功能的初始调用似乎失败了,但随后的调用工作正常。在 main() 中的主要处理循环之前添加对 uvcGrab() 的无偿调用会导致在命令行上指定“-t0”选项或未指定“-t”选项时捕获单个有效图像。

【讨论】:

以上是关于从 linux 命令行捕获图片(uvccapture 捕获黑色图片)的主要内容,如果未能解决你的问题,请参考以下文章

从命令行 Python 捕获错误

#yyds干货盘点#Linux下播放器开发-Mplayer命令行使用介绍

MacOS Metal:无法从命令行应用程序捕获 GPU 帧

linux命令行模式下,如何保存图片

windows命令行逻辑网卡方式添加一个子网卡

开发利器_ImageMagick.基于Linux命令行的图片缩放/编辑/格式转换?