Toma una foto desde la terminal

58

Quiero poder tomar una foto usando la cámara web desde la terminal. Esta imagen se guardará en un archivo. ¿Cómo se puede hacer esto?

Luis Alvarado
fuente

Respuestas:

32

Si buscas algo automatizado webcames bastante decente. Tiene muchas opciones encantadoras para enviar las fotos a través de Internet.

Si desea algo más manual, y estamos hablando de una cámara compatible con V4L / UVC (la mayoría de ellas) que puede usar streamerpara capturar un marco desde el dispositivo:

streamer -f jpeg -o image.jpeg
Oli
fuente
Gracias Oli No sabía que existía un programa de cámara web llamado WEBCAM (La ironía ...). Y sí, la cámara web está en la lista de V4L compatibles.
Luis Alvarado
46

Hay otra aplicación que se puede utilizar para capturar las imágenes de la cámara web llamada Fswebcam . puedes instalar eso con

sudo apt-get install fswebcam

Puede tener una toma de muestra con el siguiente comando.

fswebcam -r 640x480 --jpeg 85 -D 1 web-cam-shot.jpg

En la sintaxis de código anterior, -rsignifica resolución de imagen, --jpegsignifica tipo de formato de la imagen y 85su estándar de calidad, -Dsignifica retraso establecido antes de la captura.

Ahora su imagen finalmente se guardó con el nombre web-cam-shot.jpg.

Espero que ayude.

rɑːdʒɑ
fuente
99
En mi caso, mi máquina de prueba, tuve que omitir cuadros para obtener la imagen correcta. Si tomo los primeros fotogramas, la imagen es muy oscura, porque la cámara aún no estaba lista. fswebcam -r 640x480 --jpeg 100 -D 3 -S 13 fswebcam.jpg
msmafra
@tenshimsm Pasé 10 minutos averiguando qué estaba mal con mi fswebcam y luego eliminé el paquete. Lo instalé nuevamente solo para probar su enfoque, 30 marcos funcionaron para mí. Gracias :)
Chirag Bhatia - chirag64
Con mi cámara web Sodial de 5.99 €, avconvfunciona mejor.
Avio
lo que he encontrado útil es: v4lctl brillante 50% # apt-get install xawtv
Grzegorz Wierzowiecki
--no-banner (elimina la pancarta inferior con sello de tiempo)
João Cartucho
20

Usando avconvo ffmpeg, también puede capturar un marco desde su dispositivo. Por ejemplo:

avconv -f video4linux2 -s 640x480 -i /dev/video0 -ss 0:0:2 -frames 1 /tmp/out.jpg

o

ffmpeg -f video4linux2 -s 640x480 -i /dev/video0 -ss 0:0:2 -frames 1 /tmp/out.jpg

Esto se abrirá /dev/video0como un video4linux2dispositivo compatible, configurará la resolución 640x480, transmitirá durante 2 segundos ( 00:00:02o simplemente 2), luego capturará un onesolo cuadro, guardándolo en /tmp/out.jpg.

Compruebe si su dispositivo es /dev/video0, ya que puede ser diferente para usted.

Las resoluciones disponibles dependen de su cámara web. El mío sube a 640x480 y lo comprobé con una herramienta llamada qv4l2, que se usa para configurar un dispositivo video4linux2.

El -ssparámetro se utiliza para permitir que el dispositivo se inicie correctamente. Aquí en mis pruebas, hay un efecto de desvanecimiento mientras se enciende la cámara, por lo que, si lo omito -ss 2, el cuadro capturado estará muy oscuro.

Alexandre Schmidt
fuente
Preferí esta solución ya que ya había instalado avconv. Además, la salida de avconv también da pistas sobre la resolución máxima, ya que el controlador v4l muestra si tiene que recurrir a una especificación inferior.
agua helada