Scatta una foto dal terminale


58

Voglio essere in grado di scattare una foto usando la webcam dal terminale. Questa immagine verrà quindi salvata in un file. Come si può fare?

Risposte:


32

Se stai cercando qualcosa di automatizzato webcamè abbastanza decente. Ha molte opzioni adorabili per spingere le foto su Internet.

Se vuoi qualcosa di più manuale e stiamo parlando di una fotocamera supportata da V4L / UVC (la maggior parte di essi) puoi usare streamerper catturare una cornice dal dispositivo:

streamer -f jpeg -o image.jpeg

Grazie Oli. Non sapevo che esistesse un programma per webcam chiamato WEBCAM (L'ironia ...). E sì, la webcam è nella lista supportata V4L.
Luis Alvarado,

46

Esiste un'altra applicazione che può essere utilizzata per acquisire le immagini dalla webcam denominata Fswebcam . puoi installarlo con

sudo apt-get install fswebcam

puoi avere uno scatto di esempio con il seguente comando.

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

Nella sintassi del codice sopra, -rsta per risoluzione dell'immagine, --jpegsta per tipo di formato dell'immagine e 85per il suo standard di qualità, -Dsta per ritardo impostato prima dell'acquisizione.

Ora la tua immagine finalmente salvata con il nome web-cam-shot.jpg.

Spero che aiuti.


9
Nel mio caso, la mia macchina di prova, ho dovuto saltare i fotogrammi per ottenere l'immagine corretta. Se scatto i primi fotogrammi l'immagine è molto scura, perché la fotocamera non era ancora pronta. fswebcam -r 640x480 --jpeg 100 -D 3 -S 13 fswebcam.jpg
msmafra,

@tenshimsm Ho impiegato 10 minuti per capire cosa non andava nella mia fswebcam e quindi ho rimosso il pacchetto. Installato di nuovo solo per provare il tuo approccio, 30 frame hanno funzionato per me. Grazie :)
Chirag Bhatia - chirag64,

Con la mia webcam Sodial con un margine di sanguinamento di 5,99 €, avconvfunziona meglio.
Avio,

ciò che ho ferito è utile: v4lctl bright 50% # apt-get install xawtv
Grzegorz Wierzowiecki

--no-banner (rimuove il banner in basso con timestamp)
João Cartucho,

20

Usando avconvo ffmpeg, puoi anche catturare una cornice dal tuo dispositivo. Per esempio:

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

Questo si aprirà /dev/video0come video4linux2dispositivo compatibile, imposta la risoluzione su 640x480, riproduce in streaming per 2 secondi ( 00:00:02o semplicemente 2), quindi acquisisce un onesingolo fotogramma, salvandolo su /tmp/out.jpg.

Controlla se il tuo dispositivo è /dev/video0, in quanto può essere diverso per te.

Le risoluzioni disponibili dipendono dalla tua webcam. Il mio arriva a 640x480 e l'ho verificato con uno strumento chiamato qv4l2, che viene utilizzato per configurare un dispositivo video4linux2.

Il -ssparametro viene utilizzato per consentire l'avvio corretto del dispositivo. Qui nei miei test, c'è un effetto di dissolvenza mentre la fotocamera viene accesa, quindi, se ometto -ss 2, la cornice acquisita sarà molto scura.


Ho preferito questa soluzione poiché avevo già installato avconv. Inoltre, l'output di avconv fornisce anche suggerimenti sulla massima risoluzione, poiché il driver v4l mostra se deve ricadere su una specifica inferiore.
acqua ghiacciata

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.