v4l2-ctl 曝光自动设置失败

v4l2-ctl 曝光自动设置失败

我正在尝试使用 Ubuntu PC 上的实用程序调整 C920 网络摄像头的图像质量v4l2-ctl。我无法将曝光自动设置为“自动”模式,但我可以将其设置为“手动模式”或“光圈优先模式”。有什么线索吗?

*lenovo@ubuntu:~$ v4l2-ctl -d /dev/video1 -c exposure_auto=0
VIDIOC_S_CTRL: failed: Input/output error
exposure_auto: Input/output error*

以下是连接到我的 ubuntu 的 C920 的设置转储:

 - brightness (int) : min=0 max=255 step=1 default=128 value=128
 - contrast (int) : min=0 max=255 step=1 default=128 value=128
 - saturation (int) : min=0 max=255 step=1 default=128 value=128
 - white_balance_temperature_auto (bool) : default=1 value=1 
 - gain (int) : min=0 max=255 step=1 default=0 value=0 
 - power_line_frequency (menu) : min=0 max=2 default=2 value=2
 - white_balance_temperature (int) : min=2000 max=6500 step=1 default=4000 value=4000  
 - sharpness (int) : min=0 max=255 step=1 default=128 value=128 
 - backlight_compensation (int) : min=0 max=1    step=1 default=0 value=0 
 - exposure_auto (menu) : min=0 max=3 default=3    value=3  (0: Auto Mode 1: Manual Mode
           2: Shutter Priority Mode
           3: Aperture Priority Mode) 
 - exposure_absolute (int) : min=3 max=2047 step=1 default=250 value=250  
 - exposure_auto_priority (bool) :    default=0 value=1 
 - focus_absolute (int) : min=0 max=250 step=5    default=0 value=0 
 - focus_auto (bool) : default=1 value=1 
 - zoom_absolute    (int) : min=100 max=500 step=1 default=100 value=100

答案1

这通常发生在您尝试手动设置当前由其他自动控制的设置时。尝试切换“exposure_auto_priority”,看看是否能使自动算法对该特定设置失去控制。

例如,对我来说,将“white_balance_temperature_auto”设置为 0 允许我手动设置“white_balance_temperature”,这导致之前出现“失败:输入/输出错误”。

答案2

使用

v4l2-ctl -d /dev/video1 -c exposure_auto=1 

相反exposure_auto = 0,您可以将曝光设置为手动,然后设置exposure_absolute以更改值。

答案3

你好,使用 uvcdynctrl 可以很容易地找出你的相机接受的参数

sudo apt install uvcdynctrl

要获取所有受支持的命令的列表,请输入:

uvcdynctrl -c -v

-c 将为您提供所有可用设置的列表

-v 代表详细,给出可接受值的范围

我的 Microsoft Lifecam 将给我以下输出:

  Brightness
    ID      : 0x00000001,
    Type    : Dword,
    Flags   : { CAN_READ, CAN_WRITE },
    Values  : [ 30 .. 255, step size: 1 ],
    Default : 133
  Contrast
    ID      : 0x00000002,
    Type    : Dword,
    Flags   : { CAN_READ, CAN_WRITE },
    Values  : [ 0 .. 10, step size: 1 ],
    Default : 5
  Saturation
    ID      : 0x00000004,
    Type    : Dword,
    Flags   : { CAN_READ, CAN_WRITE },
    Values  : [ 0 .. 200, step size: 1 ],
    Default : 83

.. 等等。

然后你可以使用

uvcdynctrl -g 'Exposure, Auto'

或者使用以下方式设置值

uvcdynctrl -s 'Exposure, Auto' 1

相关内容