v4l2loopback-ctl set-fps 또는 set-caps는 구문 분석할 수 없거나 /sys/devices/virtual/video4linux와 같은 오류를 발생시킵니다. 해당 파일이나 디렉토리가 없습니까?

v4l2loopback-ctl set-fps 또는 set-caps는 구문 분석할 수 없거나 /sys/devices/virtual/video4linux와 같은 오류를 발생시킵니다. 해당 파일이나 디렉토리가 없습니까?

관련 정보일 수 있음: Ubuntu 20.04, Logitech 1080p USB 웹캠, NVidia GTX 1080

v4l2loopback을 설치했는데 작동합니다해결책하지만 매개변수에서 장치로 /dev/video5를 지정해야 합니다. v4l2-ctl -d /dev/video5를 사용해 보았더니 필수인 것 같았지만 명령을 사용하여 fps 또는 set-caps를 강제로 실행하려고 하면 다음과 같은 이상한 오류가 발생합니다.

v4l2loopback-ctl set-fps /dev/video5 24
can't parse device

또는

v4l2loopback-ctl set-caps "image/jpeg, width=1280, height=720, fps=30/1" /dev/video5
cat: /sys/devices/virtual/video4linux/video5/format: No such file or directory
unknown control 'keep_format'

video4linux 디렉토리는 없는데 왜 거기에 필요한지 잘 모르겠습니다.

기타 정보:

v4l2-ctl --list-devices
v4l2loopback (platform:v4l2loopback-000):
    /dev/video9

Rift Sensor: CV1 External Camer (usb-0000:00:14.0-10):
    /dev/video3
    /dev/video4

Rift Sensor: CV1 External Camer (usb-0000:00:14.0-6.3):
    /dev/video0
    /dev/video1

UVC Camera (046d:0821) (usb-0000:00:14.0-9.1):
    /dev/video5
    /dev/video6

Rift Sensor: CV1 External Camer (usb-0000:00:14.0-9.4.2):
    /dev/video7
    /dev/video8

그리고

dmesg | grep -i "Camera"
[4.637790] input: UVC Camera (046d:0821) as /devices/pci0000:00/0000:00:14.0/usb1/1-9/1-9.1/1-9.1:1.2/input/input21

답변1

set-fps

구문이 잘못되었습니다(모두해방됨v4l2loopback-ctl2020년 12월 18일 기준 버전):

$ v4l2loopback-ctl -h | grep set-fps
     set-fps <FPS> /dev/videoX  Set device fps (if format is already

따라서 다음과 같아야 합니다.v4l2loopback-ctl set-fps 24 /dev/video5

이것업스트림 읽어보기fps 및 장치가 교체되었습니다. 그러나 이는 아직 출시되지 않은 다음 버전에서 v4l2loopback매개변수가 교체되고 업스트림 저장소가 이미 이러한 변경 사항을 통합하고 이에 따라 문서를 업데이트했기 때문입니다.

set-caps

디렉터리 가 없으면 /sys/devices/virtual/video4linux/video5/이름이 루프백 장치가 없는 것입니다 /dev/video5.

유틸리티 v4l2loopback-ctl오직루프백 장치와 함께 사용할 수 있습니다. 모든 비디오 장치에서 프레임 속도와 형식을 설정하는 범용 도구는 아닙니다. 그래서:

  • 드라이버가 로드되었는지 확인하세요.
  • 장치가 생성된 것과 동일한 방식으로 드라이버가 로드되었는지 확인하십시오 dev/video5.

다음과 같은 방법으로 문제를 해결할 수 있습니다(새 매개변수 세트를 사용하여 드라이버를 로드하기 전에 드라이버를 언로드해야 합니다).

$ sudo rmmod v4l2loopback
$ sudo modprobe v4l2loopback video_nr=5

무엇보다도 v4l2loopback-ctl스크립트는 간단한 gstreamer 파이프를 사용하여 장치에 형식을 강제 적용합니다. 불행하게도 이 파이프라인은 유효한 스트림을 생성하는 데 실패하므로 image/jpeg이제 형식을 JPEG로 강제로 지정하려는 경우 사용자 스스로 결정해야 합니다.

관련 정보