¿Por qué VLC no puede abrir mi cámara USB pero el zoom sí? (En ventanas 10)

¿Por qué VLC no puede abrir mi cámara USB pero el zoom sí? (En ventanas 10)

Al intentar abrir mi cámara USB con VLC me sale

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.

Pero lo extraño es que el zoom puede abrirlo sin problemas.

Estoy ejecutando la última versión de vlc 3.0.12.

El registro aparentemente está deshabilitado de forma predeterminada. Lo habilité yendo a

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

Verificar el registro no reveló nada útil, excepto que es "directshow" el que no puede abrir esta cámara.

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

Aumenté el nivel de registro para depurar, pero esto no reveló mucho más.

depuración de dshow: dshow-vdev: CÁMARA USB depuración de dshow: dispositivo encontrado: CÁMARA USB

Intenté encontrar el ID del USB y no estoy seguro de haberlo hecho bien, pero puede que sea

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

Así es como se ve la cámara

Esta es una cámara con salida USB o HDMI con montura C, se usa como cámara de microscopio, pero yo la uso como una cámara web normal que tiene lentes intercambiables.

Gracias !

Respuesta1

Es casi seguro que esto se debe a que la resolución es demasiado alta, incorrecta o el bus USB no admite el rendimiento (especialmente si está utilizando un concentrador USB 2).

Debe ejecutar v4l2-ctl --allesto debería mostrarle todos sus dispositivos ahora que funcionan en vlc, luego ejecutar v4l2-ctl --list-devicesesto debería mostrarle una lista de dispositivos similar a esta:

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

Encuentra el dispositivo de video* que deseas. En este caso, UC70 es mi cámara web que expone dos dispositivos /dev/video6 y /dev/video7.

Luego busque los formatos que admiten como este

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

Para mí, solo video6tiene formatos compatibles y devuelve esto (tenga en cuenta que desea la transmisión de video, no 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)

Ahora, antes de hacer cualquier cosa, puedo verificar cuál es el valor predeterminado de VLC al ejecutarlo vlc v4l2:///dev/video6 -vvy veo esto:

[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

Probemos con una resolución diferente que no sea 3840x2160.

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

funciona bien.

tldr; VLC abre la transmisión de mayor resolución, el zoom y otros clientes no lo hacen.

información relacionada