Saltar al contenido

¿Cómo comprobar las cámaras web disponibles desde la línea de comandos?

Nuestro equipo redactor ha pasado horas buscando respuestas a tus búsquedas, te regalamos la respuesta por eso deseamos serte de gran apoyo.

Solución:

v4l2-ctl --list-devices

sudo apt-get install v4l-utils
v4l2-ctl --list-devices

Salida de muestra con una sola cámara:

Integrated Camera (usb-0000:00:1a.0-1.6):
        /dev/video0

Probado en Ubuntu 16.04.

video1 dispositivo de metadatos

Sin embargo, en Ubuntu 19.10 Lenovo Thinkpad P51, enumera dos de estos dispositivos, video0 y video1, pero solo tengo una cámara y solo puedo ver imágenes de video0 con ffplay. Esto se ha preguntado en:

  • Cuatro entradas / dev / video pero solo una cámara
  • https://unix.stackexchange.com/questions/512759/multiple-dev-video-for-one-physical-device

Lo que pasa es que /dev/video1 contiene solo algún tipo de metadatos de video y no las imágenes como se puede ver en:

sudo v4l2-ctl --device=/dev/video0 --all
sudo v4l2-ctl --device=/dev/video1 --all

que muestra respectivamente:

        Device Caps      : 0x04200001
                Video Capture 

        Device Caps      : 0x04a00000
                Metadata Capture

Cómo ver la imagen de la cámara en vivo

  • https://unix.stackexchange.com/questions/3304/how-do-i-watch-my-webcams-feed-in-linux
  • ¿Qué aplicaciones de cámara web están disponibles y cómo comprobar si su cámara web funciona?

Mi favorito:

sudo apt install ffmpeg
ffplay /dev/video0

ingrese la descripción de la imagen aquí

Toma una sola foto desde la línea de comando

Toma una foto desde la terminal

ffmpeg -f v4l2 -video_size 1280x720 -i /dev/video0 -frames 1 out.jpg

Grabe un video desde la línea de comando

  • Grabador de video con cámara web
  • capturar video de la cámara web y guardarlo en un archivo
  • ¿Algo mejor que Cheese para la captura de video?

Parámetros elegidos en función de “Cómo obtener parámetros de la cámara como la resolución” a continuación:

ffmpeg -f v4l2 -framerate 30 -video_size 1280x720 -input_format mjpeg -i /dev/video0 -c copy out.mkv

Luego:

ffprobe out.mkv

contiene como se esperaba:

Stream #0:0: Video: mjpeg (Baseline), yuvj422p(pc, bt470bg/unknown/unknown), 1280x720, 30 fps, 30 tbr, 1k tbn, 1k tbc (default)

Si elige parámetros incorrectos, la resolución puede ser lenta. La cámara ya genera un formato codificado específico, y la forma más sencilla de grabar es simplemente copiar ese formato como se indica arriba:

  • https://stackoverflow.com/questions/47292785/recording-from-webcam-using-ffmpeg-at-high-framerate
  • https://superuser.com/questions/1021899/what-ffmpeg-settings-to-get-the-best-possible-video-resolution-framerate-that-my

TODO Si reemplazo -c copy out.mkv con out.ogv para intentar grabar directamente en un formato abierto (a diferencia de MJPEG), obtuve un video de baja resolución.

Captura de imagen / video interactiva con vista previa

Programas de captura de imágenes / videos

Hasta que aprenda a correr ffplay previsualizar en un shell y capturar al mismo tiempo desde otro shell con ffmpeg (pelean por el dispositivo de video), tendré que rebajarme a este increíble programa GUI:

sudo apt install cheese

ingrese la descripción de la imagen aquí

Leer datos de la cámara desde C / C ++

https://stackoverflow.com/questions/4290834/how-to-get-a-list-of-video-capture-devices-web-cameras-on-linux-ubuntu-c

Un ejemplo concreto de C ++ que procesa imágenes de la cámara en la GPU con OpenGL y las muestra en vivo: https://stackoverflow.com/questions/13693946/image-processing-with-glsl-shaders/40641014#40641014

ingrese la descripción de la imagen aquí

Cómo obtener parámetros de la cámara como la resolución

  • ¿Cómo puedo averiguar las resoluciones de cámara web compatibles?
  • https://superuser.com/questions/639738/how-can-i-list-the-available-video-modes-for-a-usb-webcam-in-linux
v4l2-ctl --list-formats-ext

produce buena información:

ioctl: VIDIOC_ENUM_FMT
    Type: Video Capture

    [0]: 'YUYV' (YUYV 4:2:2)
        Size: Discrete 640x480
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
        Size: Discrete 320x180
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
        Size: Discrete 320x240
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
        Size: Discrete 352x288
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
        Size: Discrete 424x240
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
        Size: Discrete 640x360
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
        Size: Discrete 848x480
            Interval: Discrete 0.050s (20.000 fps)
        Size: Discrete 960x540
            Interval: Discrete 0.067s (15.000 fps)
        Size: Discrete 1280x720
            Interval: Discrete 0.100s (10.000 fps)
    [1]: 'MJPG' (Motion-JPEG, compressed)
        Size: Discrete 640x480
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
        Size: Discrete 320x180
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
        Size: Discrete 320x240
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
        Size: Discrete 352x288
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
        Size: Discrete 424x240
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
        Size: Discrete 640x360
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
        Size: Discrete 848x480
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
        Size: Discrete 960x540
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
        Size: Discrete 1280x720
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.067s (15.000 fps)

Cómo obtener las codificaciones ffmpeg correspondientes

v4l2-ctl --list-formats-ext da el nombre del kernel de Linux de las cosas, por ejemplo. YUYV 4:2:2. Pero para hacer cosas con ffmpeg, a veces necesitas conocer el ffmpeg nama. Puedes hacerlo así:

ffmpeg -f v4l2 -list_formats all -i /dev/video0

salida de muestra:

[video4linux2,v4l2 @ 0x555ba7267240] Raw       :     yuyv422 :           YUYV 4:2:2 : 640x480 320x180 320x240 352x288 424x240 640x360 848x480 960x540 1280x720
[video4linux2,v4l2 @ 0x555ba7267240] Compressed:       mjpeg :          Motion-JPEG : 640x480 320x180 320x240 352x288 424x240 640x360 848x480 960x540 1280x720

Esto, por ejemplo, nos dijo que el nombre ffmpeg para YUYV 4:2:2 es yuyv422.

Para enumerar todos los dispositivos de video recogidos por el kernel

ls -ltrh /dev/video*

Para enumerar todos los dispositivos conectados al uso de USB lsusb ; para enumerar todos los dispositivos conectados al uso de PCI lspci

Sección de Reseñas y Valoraciones

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *