VLC는 USB 카메라를 열 수 없지만 줌은 열 수 있는 이유는 무엇입니까? (윈도우 10의 경우)

VLC는 USB 카메라를 열 수 없지만 줌은 열 수 있는 이유는 무엇입니까? (윈도우 10의 경우)

VLC로 USB 카메라를 열려고 하면 다음과 같은 메시지가 나타납니다.

Capture failed:
The device you selected cannot be used, because its type is not supported.
Capture failed:
VLC cannot open ANY capture device. Check the error log for details.
Capture failed:
The device you selected cannot be used, because its type is not supported.
Capture failed:
VLC cannot open ANY capture device. Check the error log for details.

그런데 이상한 점은 Zoom이 문제 없이 열 수 있다는 점입니다.

최신 vlc 버전 3.0.12를 실행 중입니다.

로깅은 기본적으로 비활성화되어 있는 것 같습니다.

Tools -> Preferences -> Select "ALL" -> Advanced -> Logging

로그를 확인해도 이 카메라를 열 수 없는 "directshow"라는 점을 제외하고는 유용한 정보가 표시되지 않았습니다.

dshow error: can't use device: USB CAMERA, unsupported device type

디버깅을 위해 로그 수준을 높였지만 더 많은 정보는 공개되지 않았습니다.

dshow 디버그: dshow-vdev: USB CAMERA dshow 디버그: 발견된 장치: USB CAMERA

USB ID를 찾으려고 했는데 제대로 찾았는지 확실하지 않지만 그럴 수도 있습니다.

USB\VID_0AC8&PID_3420\5&22ac01e1&0&3

카메라는 이렇게 생겼어요

이것은 c-마운트가 있는 USB 또는 HDMI 출력 카메라입니다. 현미경 카메라로 사용되지만 저는 렌즈 교환이 가능한 일반 웹캠으로 사용하고 있습니다.

감사해요 !

답변1

이는 해상도가 너무 높거나 잘못되었거나 USB 버스가 처리량을 지원하지 않기 때문에 발생하는 것이 거의 확실합니다(특히 USB 2 허브를 사용하는 경우).

이것을 실행하면 v4l2-ctl --all현재 vlc에서 작동하는 모든 장치가 표시되고 v4l2-ctl --list-devices이를 실행하면 다음과 같은 장치 목록이 표시됩니다.

Integrated Camera: Integrated C (usbid):
    /dev/video2
    /dev/video3
    /dev/video4
    /dev/video5
    /dev/media0
    /dev/media1

UC70: UC70 (usbid):
    /dev/video6
    /dev/video7
    /dev/media2

원하는 비디오* 장치를 찾으세요. 이 경우 UC70은 두 개의 장치 /dev/video6 및 /dev/video7을 노출하는 웹캠입니다.

그런 다음 그들이 지원하는 형식을 찾으십시오.

v4l2-ctl -d /dev/video6 --list-formats-ext
v4l2-ctl -d /dev/video7 --list-formats-ext

나에게는 video6지원되는 형식만 있고 다음을 반환합니다(MJPG가 아닌 비디오 스트림을 원합니다).

    [1]: 'YUYV' (YUYV 4:2:2)
        Size: Discrete 1920x1080
            Interval: Discrete 0.500s (2.000 fps)
        Size: Discrete 3840x2160
            Interval: Discrete 1.000s (1.000 fps)
        Size: Discrete 1280x720
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
            Interval: Discrete 0.500s (2.000 fps)
        Size: Discrete 2048x1536
            Interval: Discrete 0.500s (2.000 fps)
        Size: Discrete 2560x1440
            Interval: Discrete 0.500s (2.000 fps)
        Size: Discrete 640x480
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.040s (25.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.133s (7.500 fps)
            Interval: Discrete 0.200s (5.000 fps)
            Interval: Discrete 0.500s (2.000 fps)
            Interval: Discrete 1.000s (1.000 fps)

vlc v4l2:///dev/video6 -vv이제 어떤 작업을 하기 전에 다음을 실행하여 vlc의 기본값이 무엇인지 교차 확인할 수 있습니다 .

[00007f1b64001170] v4l2 demux debug:  best discrete frame size: 3840x2160
[00007f1b5c000c30] lua art finder debug: skipping script (unmatched scope) /usr/lib/x86_64-linux-gnu/vlc/lua/meta/art/03_lastfm.luac
[00007f1b5c000c30] lua art finder debug: Trying Lua scripts in /usr/share/vlc/lua/meta/art
[00007f1b5c000c30] main art finder debug: no art finder modules matched
[0000563402032240] qt interface debug: IM: Setting an input
[00007f1b64001170] v4l2 demux warning: cannot reset cropping limits: Inappropriate ioctl for device
[00007f1b64001170] v4l2 demux debug: 16588800 bytes maximum for complete image
[00007f1b64001170] v4l2 demux debug: Interlacing setting: progressive
[00007f1b64001170] v4l2 demux debug: color primaries: 8
[00007f1b64001170] v4l2 demux debug: transfer function: 1
[00007f1b64001170] v4l2 demux debug: YCbCr encoding: 1
[00007f1b64001170] v4l2 demux debug: quantization: 0
[00007f1b64001170] v4l2 demux debug: added new video ES YUY2 3840x2160 (3840x2160)
[00007f1b64001170] v4l2 demux debug:  frame rate: 1/1
[00007f1b64001170] v4l2 demux debug:  aspect ratio: 1/1
[00007f1b70000c90] main input debug: selecting program id=0
libv4l2: error turning on stream: Input/output error
[00007f1b64001170] v4l2 demux error: cannot start streaming: Input/output error
[00007f1b64001170] v4l2 demux debug: opening device '/dev/video6'
[00007f1b64001170] v4l2 demux debug: device UC70: UC70 using driver uvcvideo (version 6.1.27) on usb-0000:52:00.0-2.2.2.2
[00007f1b64001170] v4l2 demux debug:  with capabilities 0x05200001 (overall 0x85A00001)
[00007f1b64001170] v4l2 demux error: not a radio tuner device

3840x2160이 아닌 다른 해상도로 시도해 보겠습니다.

vlc v4l2:///dev/video6 -vv --v4l2-width=640 --v4l2-height=470

잘 작동합니다.

tldr; VLC는 최고 해상도 스트림을 열지만 확대/축소 및 기타 클라이언트는 그렇지 않습니다.

관련 정보