从 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 捕获黑色图片)的主要内容,如果未能解决你的问题,请参考以下文章
#yyds干货盘点#Linux下播放器开发-Mplayer命令行使用介绍