Sto cercando di estrarre "esattamente 1 fotogramma ogni 10" fotogrammi di un video (ovvero estrarre 1, lasciare 9 quindi ripetere) per scopi scientifici. Il video è di 105 fotogrammi, 3,5 secondi, 29,97 fps (h.264, .mov, prodotto da Nikon D3100).
L'ho caricato qui .
VLC
Il comando seguente dovrebbe produrre 10 fotogrammi, ma produce solo 6 immagini. Ho provato diversi rapporti di scena e nessuno dei due produce il numero corretto di fotogrammi (nemmeno vicino alla correzione).
vlc 1.mov --video-filter=scene --vout=dummy --scene-ratio=10 --scene-prefix=img- --scene-path=. vlc://quit
Qualcuno potrebbe dirmi qual è il problema?
FFmpeg
FFmpeg non sembra avere un comando esattamente per il mio scopo. Il comando seguente estrae 3 fotogrammi ogni secondo, ma poiché l'FPS non è esattamente 30 (piuttosto 2.97), ciò non produrrà risultati corretti per me.
Inoltre, anche FFmpeg non fornisce il numero corretto di frame anche con questo comando. Per 3,5 secondi di video mi aspetto al massimo 10 fotogrammi, ma quello che ottengo sono 12 fotogrammi!
ffmpeg -i 1.mov -y -an -sameq -r 3 -f image2 -vcodec mjpeg %03d.jpg
Come posso ottenere quello che voglio?
-sameq
non fa quello che probabilmente pensi che faccia, ed è stato rimosso dalla versione corrente (il vero ffmpeg cioè, non sono sicuro che sia nel falso ffmpeg di Ubuntu). Usa invece qscale.