v4l2-ctl Exposure_absolute 设置失败

v4l2-ctl Exposure_absolute 设置失败

我正在尝试使用此命令在 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_auto1实际上是在我的相机上设置的正确设置。这看起来像是某个进程正在后台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

相关内容