Sto cercando di ottenere fotogrammi rappresentativi per un video, in modo da rimuovere i frame ridondanti che potrebbero apparire in un video. Questo è quello che uso per ottenere i frame.Cambio scena/rilevamento colpo/estrazione immagine tramite ffmpeg dal video
./ffmpeg -i video.mp4 -vf select="eq(pict_type\,PICT_TYPE_I)" -vsync 2 -s 320x240 thumb-%02d.png
Ho anche provato
./ffmpeg -i video.mp4 -f image2 -vf "select=gt(scene\,.4)" -vsync vfr thumb%04d.png
Il problema principale in questo è sfocatura. Se campiono solo fotogrammi ogni 5 secondi, non vedo alcuna sfocatura, tuttavia usando i due comandi precedenti ottengo molta sfocatura.
Il video può essere trovato qui, http://www.cs.umd.edu/~bharat/video.mp4
Al fine di campionare il video ogni 10 secondi, io uso il seguente:
./ffmpeg -i video.mp4 -r 1/10 filename%03d.jpg
output utilizzando il campionamento normale:
Uscita utilizzando selezionare:
Tuttavia, il campionamento normale potrebbe essere negativo per alcuni video e potrebbe creare fotogrammi ridondanti. C'è un modo per utilizzare alcune opzioni in ffmpeg e ottenere frame senza questa sfocatura? Se il campionamento normale può ottenere buoni frame, ci dovrebbero essere frame nelle vicinanze senza sfocatura. Ho guardato le opzioni come scenecut in ffmpeg, ma non ho familiarità con il loro utilizzo per questa applicazione.
Questo risultato è previsto con il normale campionamento del frame. Deve necessariamente essere 'ffmpeg'? Ci sono molte implementazioni di rilevamento dei colpi disponibili gratuitamente. – bjou
non necessariamente, qualsiasi cosa farà, ho solo bisogno di liberarmi dei fotogrammi sfocati – Bharat