Зачем использовать -vframes и -ss для получения миниатюры из видео?

Зачем использовать -vframes и -ss для получения миниатюры из видео?

Я использую этот аргумент для FFmpeg, чтобы получить миниатюру изображения из видеофайла:

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

Я понимаю, что -ss 10 сообщает FFmpeg о необходимости захвата миниатюры на 10-й секунде, но какова цель -vframes 1?

решение1

Это скажет ffmpegвыводить один кадр. В противном случае он попытается использоватьмультсериал файлов изображенийдля вывода нескольких изображений. Из справки:

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

решение2

Для будущих поколений, если вы затем захотите добавить миниатюру как значок файла и удалить промежуточный jpeg, добавьте это в «быстрое действие» автоматизатора, передав входные данные в качестве аргумента:

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

Связанный контент