我正在尝试使用此命令在 Ubuntu 16.04 下设置 C922 网络摄像头
v4l2-ctl --set-ctrl=exposure_auto=1
v4l2-ctl --set-ctrl=exposure_absolute=10
有时会成功,有时则不会。
例如,
$>v4l2-ctl --set-ctrl=exposure_auto=1
$>v4l2-ctl --set-ctrl=exposure_absolute=10 .....ok
$>v4l2-ctl --set-ctrl=exposure_absolute=10 **.....sometimes failed**
VIDIOC_S_CTRL: failed: Input/output error
exposure_auto: Input/output error*
$>v4l2-ctl --set-ctrl=exposure_absolute=10 **.......sometimes failed**
VIDIOC_S_CTRL: failed: Input/output error
exposure_auto: Input/output error*
$>v4l2-ctl --set-ctrl=exposure_absolute=10 .....ok
我不知道为什么,或者如何解决它。
答案1
设置exposure_auto
为1
实际上是在我的相机上设置的正确设置。这看起来像是某个进程正在后台exposure_absolute
更改您的值。如果您遇到exposure_auto
$>v4l2-ctl --set-ctrl=exposure_auto=1
...
$>v4l2-ctl --set-ctrl=exposure_absolute=10
VIDIOC_S_CTRL: failed: Input/output error
exposure_auto: Input/output error*
然后再次exposure_auto
使用
v4l2-ctl --list-ctrls
如果的值exposure_auto
确实发生了变化,请尝试找出其原因。
还要检查您的设备“之前”和“之后”(使用v4l2-ctl --list-devices
),特别是如果您有多个摄像头(例如内置摄像头和 USB)。您始终可以通过设置参数来确保寻址正确的硬件--device
,例如:
v4l2-ctl --device /dev/videoX --set-ctrl=exposure_auto=1
作为videoX
您实际设备的占位符(例如video0
)。
在类似的情况下,我遇到过:
$ v4l2-ctl --device /dev/video0 --set-ctrl=white_balance_temperature=3000
VIDIOC_S_CTRL: failed: Input/output error
white_balance_temperature: Input/output error
我通过设置修复了它
$ v4l2-ctl --device /dev/video0 --set-ctrl=white_balance_temperature_auto=0