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, ffmpeg
dass 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