Guía · CLI · 2026
Cómo extraer fotogramas de video con FFmpeg (guía completa)
FFmpeg puede sacar un still, muestrear cada N segundos, volcar todos los fotogramas o quedarse solo con keyframes. Abajo van comandos probados para pegar en la terminal — y cuándo un extractor en el navegador es más rápido.
Extraer un fotograma en un timestamp
Coloca -ss antes de -i para que FFmpeg haga seek primero y escriba exactamente un fotograma de video. Es el patrón más rápido en archivos largos.
ffmpeg -ss 00:01:23.000 -i input.mp4 -frames:v 1 frame.jpgCambia el timestamp según necesites. Para PNG, usa el nombre de salida frame.png.
Extraer un fotograma cada N segundos
Usa el filtro fps. fps=1 es un fotograma por segundo; fps=1/5 es un fotograma cada cinco segundos.
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.jpgExtraer todos los fotogramas
Si omites el filtro fps, se escribe cada fotograma decodificado. Un clip de 10 minutos a 30 fps puede generar ~18.000 imágenes — calcula el disco antes.
mkdir -p all_frames
ffmpeg -i input.mp4 all_frames/frame_%06d.pngExtraer solo keyframes
Conserva los I-frames con un filtro select y salida a tasa variable para no inventar duplicados entre keyframes.
mkdir -p keyframes
ffmpeg -i input.mp4 -vf "select='eq(pict_type\,I)'" -vsync vfr keyframes/k_%04d.jpgControlar la calidad JPG con -q:v
En salidas MJPEG/JPG, -q:v 2 es un buen valor de alta calidad (aprox. 2–5 para stills visualmente excelentes; números más altos = más chico / menos calidad).
ffmpeg -ss 00:00:10 -i input.mp4 -frames:v 1 -q:v 2 still.jpgPrefiere PNG cuando las etiquetas o reediciones no toleran pérdida generacional. Prefiere JPG cuando necesitas miles de previews.
Cuándo un extractor en el navegador es más rápido
FFmpeg gana en scripts, servidores y lotes de cientos de archivos. Un extractor en el navegador gana cuando quieres ver la línea de tiempo, probar tres candidatos de miniatura y bajar un ZIP sin instalar nada. Para ese camino, abre el extractor gratis de GetVideoFrames — local, sin subir el video. Aplican límites del navegador y del dispositivo. Los equipos de ML también pueden empezar en la herramienta de muestreo de datasets.