我住在欧洲,购买了 Logitech C920 网络摄像头,其电源线频率设置应更改为 50Hz,以避免闪烁。我使用以下指令做到了:
/usr/bin/v4l2-ctl --d /dev/video0 --set-ctrl power_line_frequency=1
这工作正常,我什至尝试使用规则使其持久化udevadm
:
SUBSYSTEM=="video4linux", KERNEL=="video[0-9]*", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="08e5", RUN+="/usr/bin/v4l2-ctl -d $devnode --set-ctrl=power_line_frequency=1"
这似乎也有效,因为v4l2-ctl -d /dev/video0 --list-ctrls
在重新启动系统后或在网络摄像头 USB 中拔出后给出以下输出:
brightness 0x00980900 (int) : min=0 max=255 step=1 default=128 value=128
contrast 0x00980901 (int) : min=0 max=255 step=1 default=128 value=128
saturation 0x00980902 (int) : min=0 max=255 step=1 default=128 value=128
white_balance_temperature_auto 0x0098090c (bool) : default=1 value=1
gain 0x00980913 (int) : min=0 max=255 step=1 default=0 value=0
power_line_frequency 0x00980918 (menu) : min=0 max=2 default=2 value=1 (50 Hz)
white_balance_temperature 0x0098091a (int) : min=2800 max=7500 step=1 default=5000 value=5000 flags=inactive
sharpness 0x0098091b (int) : min=0 max=255 step=1 default=128 value=128
backlight_compensation 0x0098091c (int) : min=0 max=1 step=1 default=0 value=0
exposure_auto 0x009a0901 (menu) : min=0 max=3 default=3 value=3 (Aperture Priority Mode)
exposure_absolute 0x009a0902 (int) : min=3 max=2047 step=1 default=156 value=156 flags=inactive
exposure_auto_priority 0x009a0903 (bool) : default=0 value=1
pan_absolute 0x009a0908 (int) : min=-36000 max=36000 step=3600 default=0 value=0
tilt_absolute 0x009a0909 (int) : min=-36000 max=36000 step=3600 default=0 value=0
focus_absolute 0x009a090a (int) : min=0 max=250 step=1 default=0 value=0 flags=inactive
focus_auto 0x009a090c (bool) : default=1 value=1
zoom_absolute 0x009a090d (int) : min=100 max=500 step=1 default=100 value=100
如您所见,power_line_frequency
设置设置为值 1 (50Hz),这是正确的。但是,如果我启动使用网络摄像头(如 Skype、Zoom 或 Discord)的应用程序,并且看到网络摄像头输出视频,它仍然闪烁(尽管 的值power_line_frequency
仍然为 1)。但是,如果我再次执行/usr/bin/v4l2-ctl --d /dev/video0 --set-ctrl power_line_frequency=1
甚至sudo udevadm trigger
手动运行udevadm
规则,它就会被修复。
有谁知道为什么会发生这种情况或者如何解决?
PD:我使用的是带有内核 5.15.0-56 的 Ubuntu 22.04。
预先非常感谢您。