Saltar al contenido principal

Guía · CLI · 2026

Cómo extraer fotogramas de video con FFmpeg (guía completa)

Usa FFmpeg para guardar un still, muestrear un video por intervalos o escribir cada fotograma decodificado. Los comandos de abajo se probaron con un video generado y puedes adaptarlos a un archivo que tengas derecho a procesar.

Por Publicado Actualizado

Verificado el 13 de julio de 2026 con FFmpeg 7.1.1 en macOS.

Extraer un fotograma en un timestamp

Usa este comando para escribir una imagen cerca de un timestamp. Con -ss antes de -i, FFmpeg busca en la entrada antes de decodificar; la posición exacta puede depender de la fuente y de sus keyframes.

ffmpeg -ss 00:01:23.000 -i input.mp4 -frames:v 1 frame.jpg

Cambia el timestamp según necesites. Para PNG, usa el nombre de salida frame.png.

Extraer un fotograma cada N segundos

Usa el filtro fps para muestrear el video decodificado. fps=1 solicita un fotograma por segundo; fps=1/5 solicita uno cada cinco segundos. Crea antes la carpeta de salida e inspecciona la secuencia resultante.

mkdir -p frames
ffmpeg -i input.mp4 -vf fps=1 frames/out_%04d.jpg

# one frame every 5 seconds
ffmpeg -i input.mp4 -vf fps=1/5 frames/out_%04d.jpg

Extraer todos los fotogramas

Si omites un filtro de selección de fotogramas, se escribe cada fotograma decodificado en la secuencia de imágenes. Esto puede crear muchos archivos: prueba primero con una copia corta y confirma que el destino tenga espacio.

mkdir -p all_frames
ffmpeg -i input.mp4 all_frames/frame_%06d.png

Controlar la calidad JPG con -q:v

Para salida JPG, -q:v 2 es un ajuste explícito de calidad para el codificador MJPEG de FFmpeg. Compara una muestra de tu fuente antes de elegir un valor: el codificador, el input y el resultado visual pueden variar.

ffmpeg -ss 00:00:10 -i input.mp4 -frames:v 1 -q:v 2 still.jpg

Usa PNG cuando un formato de imagen sin pérdida encaje con el trabajo. Usa JPG cuando su compresión sea adecuada para el uso previsto y el almacenamiento disponible.

Antes de ejecutar un lote

Estos ejemplos asumen que FFmpeg puede decodificar el input y que tu shell puede escribir en la carpeta de destino. No conceden derechos para copiar, publicar o reutilizar metraje. Procesa solo medios propios o autorizados y revisa la secuencia de imágenes antes de usarla en un flujo.

Referencias oficiales de FFmpeg

FAQ

Preguntas frecuentes

¿Cuál es el comando FFmpeg más rápido para un fotograma?
Usa -ss antes de -i con -frames:v 1 cuando el seek de entrada sea adecuado para tu fuente. El comando escribe un fotograma, pero la posición exacta puede depender del archivo y de sus keyframes. Ejemplo: ffmpeg -ss 00:01:23 -i input.mp4 -frames:v 1 frame.jpg
¿Cómo extraigo 1 fotograma por segundo con FFmpeg?
Usa el filtro fps: ffmpeg -i input.mp4 -vf fps=1 frames/out_%04d.jpg. Para un fotograma cada 5 segundos usa fps=1/5. Crea la carpeta de salida primero.
¿Debo usar JPG o PNG con FFmpeg?
Usa PNG cuando un formato sin pérdida sea adecuado para el trabajo. Usa JPG cuando su compresión y almacenamiento se ajusten al uso previsto. Prueba una muestra de tu fuente antes de elegir un ajuste de calidad.