VLC では USB カメラを開けないのに、Zoom では開けるのはなぜですか? (Windows 10 の場合)

VLC では USB カメラを開けないのに、Zoom では開けるのはなぜですか? (Windows 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.

しかし不思議なことに、ズームでは問題なく開くことができます。

私は最新の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 カメラ dshow デバッグ: デバイスが見つかりました: USB カメラ

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 は 2 つのデバイス /dev/video6 と /dev/video7 を公開する Web カメラです。

次に、サポートされている形式を次のように探します

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

正常に動作します。

要約: VLC は最高解像度のストリームを開きますが、Zoom や他のクライアントは開きません。

関連情報