ffmpeg: Wie erstelle ich beschnittene Thumbnails?

10

Zum Erstellen eines Video-Miniaturbilds mit verwende ffmpegich diesen Befehl:

ffmpeg -itsoffset -4 -i video.mp4 -vframes 1 thumb.jpg

Dies gibt mir ein Miniaturbild mit der gleichen Größe des Videos (das eine unbekannte Größe hat, z. B. 960 x 540). Was ich aber brauche, ist ein quadratisches ( beschnittenes ) Miniaturbild mit einer bestimmten Größe (z. B. 200 x 200). Das Ergebnis darf nicht in der Größe geändert, sondern von der Mitte abgeschnitten werden, und das Seitenverhältnis sollte sich nicht ändern.

Wie kann dies erreicht werden?

Georg Ledermann
quelle
Warum -itsoffsetstatt verwenden -ss? Ich habe in letzter Zeit eine vermehrte Nutzung durch Benutzer gesehen, die Bildausgaben von Videos machen.
Llogan
@ LordNeckbeard: Entschuldigung, die Optionen sind durcheinander. Fand dies für weitere Informationen über -itsoffsetvs -ss.: superuser.com/questions/538031/…
Georg Ledermann

Antworten:

12

Sie können den cropVideofilter verwenden:

ffmpeg -ss 4 -i video.mp4 -vf crop=200:200 -vframes 1 output.jpg
  • Standardmäßig wird der Zuschnitt zentriert.

  • Verwenden Sie -ssstatt -itsoffset, um Ihre Versatzzeit zu wählen.

  • Sie können die JPEG-Ausgabequalität mit steuern -qscale:v. Die Verwendung eines Wertes von 2-5 ist normalerweise gut. Ein niedrigerer Wert ist eine höhere Qualität.

  • Der cropFilter kann auch die Eingangs- und Ausgangs Breite und Höhe als Werte annehmen: iw, ih, ow, oh. Dies ermöglicht eine flexiblere und kreativere Filterung : crop=iw-100:ih-50.

Sie können mit testen ffplay, um eine Vorschau zu erhalten:

ffplay video.mp4 -vf crop=200:200

Originalbild (generiert mit dem testsrcQuellfilter:

ffmpeg -f lavfi -i testsrc -vframes 1 output.jpg 

Original Bild

Beschnittenes Bild:
zugeschnittenes Bild

llogan
quelle
6

Sie können es zuerst skalieren und dann zuschneiden, um eine bessere Ausgabe zu erzielen;)

ffmpeg -ss 10 -i "Ali_Video.mp4" -vframes 1 -filter "scale=-1:300,crop=400:300" "output.jpg"

Video um 0:49 eingeben Ausgabebild

ffmpeg -ss 10 -i "Ali_Video.mp4" -vframes 1 -filter "scale=-1:150,crop=200:150" "output.jpg"

ein weiteres Vorschaubild

SMMousavi
quelle