ein*_*lum 2 settings debian video camera devuan
我在我的 PC 上使用 Logitech C720 网络摄像头,它运行 Devuan Beowulf GNU/Linux(~= Debian 10 Buster 但没有 systemd)。
在SuperUser 上的一个相关但不是特定于Linux 的问题中,事实证明我需要更改网络摄像头的电源线频率设置。
但是 - 我不知道该怎么做。我的桌面环境 Cinnamon 在“系统设置”对话框中没有项目。那我怎么做这个设置呢?
tel*_*coM 10
在命令行上,您可以使用以下命令将uvcvideo驱动器的电源线频率设置为 50 Hz 值:
v4l2-ctl --set-ctrl=power_line_frequency=1
Run Code Online (Sandbox Code Playgroud)
如果您的网络摄像头不是/dev/video0,请添加-d /dev/videoN具有正确编号的选项。该v4l2-ctl命令包含在 package 中v4l-utils,至少在 Debian 和相关发行版中是这样。
此外,v4l2-ctl -L将显示网络摄像头中可用设置的列表。它还将描述电源线频率等设置的可用选项。您的网络摄像头可能有一个与我的不同的可用设置列表。
要使电源线频率设置保持不变,您可能需要对其制定 udev 规则。为此,请创建一个以/etc/udev/rules.d/81-uvcvideo.rules以下内容命名的文件:
# Set power line frequency to European
ACTION=="add", SUBSYSTEM=="video4linux", DRIVERS=="uvcvideo", RUN+="/usr/bin/v4l2-ctl --set-ctrl=power_line_frequency=1"
Run Code Online (Sandbox Code Playgroud)
如果您使用的应用程序不允许您进行相关设置,并且没有“设置小程序”,请使用可以进行这些设置的应用程序。
一个突出的例子是guvcviewGNU UVC 查看器程序。它是一个使用Linux USB 视频类驱动程序(UVC)从设备捕获视频的实用程序。当您启动它时,您将找到电源线频率设置:
现在您可以将以美国为中心的 60 Hz 更改为更常见的50 Hz。
笔记:
(这是@telcoM 答案的变体)
(USB) 网络摄像头由 Linux USB 视频客户端驱动程序控制。他们的设备文件是等等/dev/video0。/dev/video1
驱动器设置之一是电源线频率,(通常)有 3 个选项:
0对于禁用,即驱动程序根本不考虑电压周期。150 Hz(世界大部分地区)260 Hz(美国和其他一些国家)Debian 系统上有两个可供此驱动程序使用的替代控制实用程序。一个是点名v4l-ctl,覆盖在telcoM的答案中,另一个是点名uvcdynctrl;它与同名包一起安装,即您需要运行以下命令(作为 root 或 via sudo):
apt install uvcdynctrl
Run Code Online (Sandbox Code Playgroud)
安装软件包后,请执行以下操作(不一定以 root 用户身份 - 这取决于相机设备文件的权限):
列出可用的设备以确保您看到您的相机:
uvcdynctrl -l
Run Code Online (Sandbox Code Playgroud)
输出应如下所示:
Listing available devices:
video0 UVC Camera (046d:0825)
Media controller device: /dev/media0
Entity 1: UVC Camera (046d:0825). Type: 65537, Revision: 0, Flags: 1, Group-id: 0, Pads: 1, Links: 0
Device node
Entity: 1, Pad 0, Flags: 1
video1 UVC Camera (046d:0825)
Media controller device /dev/media1 doesn't exist
Run Code Online (Sandbox Code Playgroud)/dev/media0:
webcam_device="video0"
Run Code Online (Sandbox Code Playgroud)uvcdynctrl -d${webcam_device} "--get=Power Line Frequency"
Run Code Online (Sandbox Code Playgroud)
这次,输出应该只是一个数字。在您的情况下,它可能是2,对应于 60 Hz 的频率。uvcdynctrl -d${webcam_device} "--set=Power Line Frequency" 1
Run Code Online (Sandbox Code Playgroud)当然,如果您知道设备名称,则只需要第四个命令。
然而,正如 @telcoM 所指出的,这不是一个持久的设置。为了使其持久化,您需要添加一个udev 规则,在连接相机时执行。
创建一个名为 的文件/etc/udev/rules.d/81-uvcvideo.rules,内容为:
# Set power line frequency to 50 Hz
ACTION=="add", SUBSYSTEM=="video4linux", DRIVERS=="uvcvideo", RUN+="/usr /bin/uvcdynctrl -d$attr{name} --set=Power\\ Line\\ Frequency 1"
Run Code Online (Sandbox Code Playgroud)
笔记:
$attr{name}应保存新连接设备的名称,例如等video0。video1| 归档时间: |
|
| 查看次数: |
5022 次 |
| 最近记录: |