¿Por qué utilizar -vframes y -ss para obtener una imagen en miniatura de un vídeo?

¿Por qué utilizar -vframes y -ss para obtener una imagen en miniatura de un vídeo?

Estoy usando este argumento en FFmpeg para obtener una imagen en miniatura de un archivo de video:

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

Entiendo que -ss 10 le dice a FFmpeg que capture la imagen en miniatura en el décimo segundo, pero ¿cuál es el propósito de -vframes 1?

Respuesta1

Eso le indicará ffmpegque genere un cuadro. De lo contrario, intentará utilizar elmezclador de archivos de imagenpara generar varias imágenes. De la ayuda:

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

Respuesta2

Para la posteridad, si luego desea agregar la miniatura como un ícono de archivo y eliminar el jpeg intermedio, agregue esto a una "acción rápida" del automatizador, pasando la entrada como argumento:

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

información relacionada