Crea un'image each XX secondi del video

Schermata: FilmStrip

Ho provato ffmpeg -i video.mkv -vf fps=1 out%d.png

Ma sta generando immagini una per una. Ho bisogno di tutte le miniature in un'image. come in uno screenshot sopra.

immettere qui la descrizione dell'immagine

 ffmpeg -i input -filter_complex \ "select='not(mod(n,30))',scale=120:-1,tile=layout=3x2" \ -vframes 1 -q:v 2 output.jpg 
  • select un fotogramma each 30 secondi
  • scalare each canvasio ad una dimensione più piccola (in alternativa puoi scalare dopo la piastrella)
  • tegola each canvasio in un'image. La dimensione predefinita della griglia è 6×5, quindi potrebbe essere necessario regolare tale valore con il layout seconda di quante immagini desideri visualizzare.

Il process potrebbe richiedere un certo tempo a seconda della durata e del formato dell'input.

puoi usare qualcosa di simile

 ffmpeg -i video.mkv -filter:v "select=not(mod(n\,10)),setpts=N/((25)*TB)" -qscale:v 2 frame%03d.jpg 
  • i controlli di select che frame si sta afferrando (in questo caso uno su each 10)
  • i setps controllano il framerato e dipendono dalla sorgente – 25 per PAL o 30000/1001 per il video NTSC
  • qscale controlla qualità (scala di quantizzazione) dei frame di output da 2 (meglio) a 31 (peggiore)

appena notato la tua modifica sopra, se questo ti dà i fotogrammi che desideri utilizzare dovrebbe essere un bel punto di partenza

dovrai quindi cucire le immagini insieme nel singolo asset utilizzando uno strumento come ImageMagick

 montage -background "transparent" -depth 8 -type TrueColorMatte frame??.jpg \ -geometry 50x50 -tile 10x10 -matte -transparent "transparent" \ -type TrueColorMatte -depth 8 allframes.jpg