如果打开使用网络摄像头电源线频率的新应用程序,网络摄像头的电源线频率设置不会生效

如果打开使用网络摄像头电源线频率的新应用程序,网络摄像头的电源线频率设置不会生效

我住在欧洲,购买了 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。

预先非常感谢您。

相关内容