我正在尝试使用 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