Cattura immagine webcam da terminale

E' possibile scattare una foto tramite la webcam direttamente da terminale, ci sono diversi pacchetti che si occupano di questo lavoro come webcam, streamer, fswebcam, uvccapture ecc... Ognuno ha diverse opzioni e consiglio di darci un'occhiata per valutare quello di cui si ha bisogno, ad esempio webcam ha già delle opzioni per caricare il file su uno spazio FTP.

Io ho usato fswebcam, ovviamente bisogna prima installare il pacchetto:

sudo apt-get install fswebcam


poi basta dare il comando, diverse opzioni a piacere, ed ottenere così il file immagine, ad esempio:

DATE="`date '+%Y-%m-%d_%H-%M-%S'`"
fswebcam -d V4L2:/dev/video0 -i 0 -r 1280x1024 --jpeg 80 -D 4 /percorso/webshoot_${DATE}.jpg

L'opzione -d identifica il device, -i l'input, -r è la risoluzione, --jpeg il formato del file, in questo caso JPG, -D è il tempo di attesa prima di scattare.
Per maggiori informazioni visualizzare il manuale che è veramente ricco di opzioni.

Per identificare il device basta lanciare il comando

fswebcam --list-input


e si otterrà un risultato di questo tipo:

--- Opening /dev/video0...
Trying source module v4l2...
/dev/video0 opened.
--- Available inputs:
0: Camera 1
No input was specified, using the first.
Adjusting resolution from 384x288 to 352x288.
--- Capturing frame...
Captured frame in 0.00 seconds.
--- Processing captured image...
There are unsaved changes to the image.

Come recita il manuale, i moduli sorgente disponibili sono, in ordine di preferenza:

V4L2 - Capture images from a V4L2 compatible video device.
V4L1 - Capture images from a V4L1 compatible video device.
FILE - Capture an image from a JPEG or PNG image file.
RAW - Reads images straight from a device or file.
TEST - Draws colour bars.