Warum -vframes und -ss verwenden, um ein Miniaturbild aus einem Video zu erhalten?

Warum -vframes und -ss verwenden, um ein Miniaturbild aus einem Video zu erhalten?

Ich verwende dieses Argument für FFmpeg, um ein Miniaturbild aus einer Videodatei zu erhalten:

ffmpeg -i input.mp4 -vframes 1 -s 320x240 -ss 10 output.jpg

Ich verstehe, dass -ss 10 FFmpeg anweist, das Miniaturbild in der 10. Sekunde aufzunehmen, aber was ist der Zweck von -vframes 1?

Antwort1

Das gibt an, ffmpegdass ein Frame ausgegeben werden soll. Andernfalls wird versucht, denBilddatei-Multiplexerum mehrere Bilder auszugeben. Aus der Hilfe:

$ ffmpeg -h
...
-vframes number     set the number of video frames to record

Antwort2

Für die Nachwelt: Wenn Sie dann die Miniaturansicht als Dateisymbol hinzufügen und das Zwischen-JPEG löschen möchten, fügen Sie dies zu einer „Schnellaktion“ des Automators hinzu und übergeben Sie die Eingabe als Argument:

export PATH=/usr/local/bin:/opt/homebrew/bin:$PATH

for f in "$@"
do 
   ffmpeg -y -ss 60 -i "$f" -v error -vf select="eq(pict_type\,I),scale=-1:640,crop=in_w:in_h:0:0" -qscale:v 3 -vframes 1 "$f".jpg
   fileicon set "$f" "$f".jpg
   rm "$f".jpg
done

verwandte Informationen