2012-09-21 66 views
5

He estado tratando de extraer fotogramas clave del video usando ffmpeg 0.11.1. Hasta ahora, todos los comandos que he intentado no extraen fotogramas clave sino que devuelven todos los fotogramas, es decir, 25fps * cantidad de tiempo total de fotogramas en la salida. Intenté configurar keyint_min como 25 para asegurarme de que haya un máximo de 1 fotograma clave por segundo.ffmpeg extracción de fotograma clave

ffmpeg -vf select="eq(pict_type\,PICT_TYPE_I)" -g 250 -keyint_min 25 -i C:\test.mp4 -vsync 2 -f image2 C:\testTemp\thumbnails-%02d.jpeg 

Pero todavía se devuelven todos los marcos.

Luego traté de separar los fotogramas clave por 20 segundos.

ffmpeg -i C:\test.mp4 -vf select='eq(pict_type\,I)*(isnan(prev_selected_t)+gte(t-prev_selected_t\,20))' -vsync 0 -f image2 C:\testTemp\%09d.jpg 

De nuevo el mismo resultado, se devuelven todos los marcos.

¿Qué debo hacer?

Respuesta

9

En su primer comando está utilizando el filtro como una opción de entrada. No sé cómo ffmpeg interpretará eso.

Prueba esto:

ffmpeg -i C:\test.mp4 -vf select='eq(pict_type\,I)',setpts='N/(25*TB)' C:\testTemp\%09d.jpg 

Cambio 25 a la velocidad de fotogramas de la fuente: 30000/1001 de vídeo NTSC, 24000/1001 para la película NTSC, PAL 25 para, etc.

Salida de control calidad con la opción -q:v o -qscale:v (simplemente llamada -qscale en ffmpeg antiguo). El rango para mpeg * es 1-31 donde 31 es de la peor calidad.

La próxima vez recuerde que las preguntas sobre el uso de ffmpeg deben hacerse en superuser.com ya que stackoverflow es específicamente para programación.

+0

Hola, gracias, pero recibí un error Error al inicializar el filtro, seleccione con args. El número de apertura y cierre 'no son iguales, así que intenté cambiar la parte seleccionada para seleccionar =' eq (tipo_pict. \, I), setpts = N/(25 * TB) 'y luego seleccionar =' eq (tipo_pict. \, I), setpts = 'N/(25 * TB)' 'Pero ambos devolvieron el mismo error –

+0

Lo sentimos. Mal trabajo de pegar Actualicé el comando, pero no puedo probar en este momento. – LordNeckbeard

+0

Obtengo: Falta ')' o demasiados argumentos en 'eq (tipo_pictoria \, I)' y luego otro error como error al analizar la expresión 'eq (tipo_pict. \, I)' –