Stapeln Sie Bilder mit "hstack"-Filter aus Video- oder Bildsequenzen in ffmpeg

Ist es möglich, jede Sekunde ein Video einzugeben und Bilder zu extrahieren, während sie gleichzeitig mit dem "hstack" -Filter horizontal oder vertikal gestapelt werden, um ein JPG-Bild zu erstellen?

Der einzige Weg, wie ich herausfinden kann, wie das geht, besteht darin, die Standbilder mit diesem Befehl zu extrahieren:

ffmpeg -i INPUT.mov -vf fps=1 -s 192x108 thumbnails%03d.jpg

Und dann geben Sie sie einzeln ein und geben dann die Anzahl der Eingaben wie folgt an.

ffmpeg -y -i thumbnails001.jpg -i thumbnails002.jpg -i thumbnails003.jpg... filter_complex vstack=inputs=3 output.jpg

Es wäre schön, wenn es möglich wäre, einen weiteren dynamischen Chunk aus dem Originalvideo oder zumindest aus einer eingegebenen Videosequenz zu machen und nicht die Anzahl der INPUTS manuell einzufügen, die zum Erstellen des Stacks benötigt werden.

Antworten (1)

Verwenden Sie dafür besser den tileFilter:

ffmpeg -i INPUT.mov -vf fps=1,scale=192:108,tile=54x1 output.jpg

Das Tile-Argument hat die Größe eines Rechtecks. Für ein 54-Sekunden-Video wird also 54x1ein horizontaler Stapel von 54 Frames erzeugt. Verwenden Sie 1x54für einen vertikalen Stapel.

Danke vielmals. Klappt wunderbar. Ist es möglich anzugeben, welche Bildnummer jede Sekunde gewählt werden soll? Jetzt scheint es für einen 25-fps-Clip Bild 13 zu wählen. Ich möchte, dass es jede Sekunde das erste Bild wählt.
Ersetzen fps=1durchselect='not(mod(n,25))'
Nochmals vielen Dank! Ich musste es innerhalb von "" in dieser Filterkette hinzufügen. Jetzt gehts.-vf "select='not(mod(n,25))'",scale=960:540,colormatrix=bt709:bt601,tile=30x1