웹캠의 전력선 주파수 설정을 어떻게 변경합니까?

웹캠의 전력선 주파수 설정을 어떻게 변경합니까?

저는 Devuan Beowulf GNU/Linux(~= Debian 10 Buster, systemd 없음)를 실행하는 PC에서 Logitech C720 웹캠을 사용하고 있습니다.

관련이 있지만 Linux와 관련이 없는 특정 항목에서는슈퍼유저에 대한 질문, 웹캠의 전력선 주파수 설정을 변경해야 한다는 것이 밝혀졌습니다.

하지만 - 어떻게 해야 할지 모르겠어요. 내 데스크탑 환경 Cinnamon의 "시스템 설정" 대화 상자에 해당 항목이 없습니다. 그럼 이것을 어떻게 설정하나요?

답변1

명령줄에서 다음을 uvcvideo사용하여 드라이브의 전력선 주파수를 50Hz 값으로 설정할 수 있습니다.

v4l2-ctl --set-ctrl=power_line_frequency=1

웹캠이 아닌 경우 올바른 번호로 옵션을 /dev/video0추가하세요 . -d /dev/videoN이 명령은 적어도 Debian 및 관련 배포판에서는 v4l2-ctlpackage 에 있습니다 .v4l-utils

또한 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"

답변2

사용 중인 애플리케이션에서 관련 설정을 할 수 없고 "설정 애플릿"이 없는 경우 다음 애플리케이션을 사용하십시오.할 수 있는다음과 같은 설정을 하십시오.

대표적인 예는guvcview- GNU UVC 뷰어 프로그램. 장치에서 비디오를 캡처하는 유틸리티입니다Linux USB 비디오 클래스 드라이버(UV). 시작하면 전력선 주파수 설정을 찾을 수 있습니다.

여기에 이미지 설명을 입력하세요.

이제 미국 중심의 60Hz를 다음으로 변경할 수 있습니다.일반적으로 비교적 일반적입니다.50Hz.

노트:

  • 다른 응용 프로그램이 카메라를 활발하게 사용하고 있으면 GUVCView가 시작되지 않을 수 있습니다.
  • 이러한 방식으로 빈도를 설정하면 시스템을 재부팅해도 지속되지 않습니다.

답변3

Linux UVC 드라이버를 사용한 제어 유틸리티

(이것은 @telcoM의 답변의 변형입니다)

(USB) Linux로 제어되는 웹캠USB 비디오 클라이언트운전사. 해당 장치 파일 /dev/video0등은 다음과 같습니다 /dev/video1.

드라이브 설정 중 하나는 전력선 주파수이며 일반적으로 3가지 옵션이 있습니다.

  • 0비활성화된 경우, 즉 드라이버는 전압 사이클을 전혀 고려하지 않습니다.
  • 150Hz(세계 대부분)
  • 260Hz(미국 및 기타 일부 국가)

Debian 시스템에는 이 드라이버에 사용할 수 있는 두 가지 대체 제어 유틸리티가 있습니다. 그 중 하나의 이름은 입니다 v4l-ctl.텔레콤의 답변, 같은 이름으로 다른 이름 uvcdynctrl이 설치되었습니다., 즉 다음 명령을 실행해야 합니다(루트로 또는 를 통해 sudo):

apt install uvcdynctrl

패키지를 설치한 후 다음을 수행하십시오(반드시 루트로 로그인할 필요는 없으며 카메라 장치 파일의 권한에 따라 다름).

  1. 카메라가 보이도록 사용 가능한 장치를 나열하세요.

    uvcdynctrl -l
    

    출력은 다음과 같아야 합니다.

    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
    
  2. 귀하의 장치가 다음과 같다고 가정합니다 /dev/media0.
    webcam_device="video0"
    
  3. 현재 전력선 주파수 설정을 가져옵니다.
    uvcdynctrl -d${webcam_device} "--get=Power Line Frequency"
    
    이번에는 출력이 숫자여야 합니다. 귀하의 경우에는 260Hz의 주파수에 해당 할 수 있습니다 .
  4. 새 전력선 주파수를 설정합니다.
    uvcdynctrl -d${webcam_device} "--set=Power Line Frequency" 1
    

물론 장치 이름을 아는 경우 네 번째 명령만 필요합니다.

설정을 유지하세요

그러나 @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"

노트:

  • $attr{name}새로 연결된 장치의 이름 등 video0을 저장해야 합니다.video1
  • 이론적으로 이는 장치에 관계없이 전역적으로 설정될 수 있습니다. 하지만 - 누가 알겠어요? 어쩌면 전력선 주파수 보정이 필요하지 않은 자연광이 들어오는 방을 카메라로 가리키고 있을 수도 있습니다.
  • 위의 규칙은 테스트되지 않았습니다(!)

관련 정보