2012-08-10 14 views
5

¿Hay alguna forma (a través de script o preferiblemente algún parámetro en la llamada ffmpeg que omití) de extraer marcos de un archivo avi y ignorar marcos duplicados secuencialmente, por lo tanto ¿poder ver las imágenes solo mirando los deltas/cambios?FFMPEG - Cómo extraer marcos como imágenes al eliminar marcos duplicados secuencialmente

Frecuentemente tengo que grabar reuniones en el trabajo y muchas veces, la pantalla del cliente que estoy viendo no cambia mientras estamos hablando por teléfono. Después de que termine la reunión, necesito usar estas imágenes como parte de nuestra documentación y recopilación de especificaciones.

Sé que podría simplemente sacar todos los cuadros y ejecutarlos a través de cualquier herramienta de eliminación de archivos duplicados, pero esto eliminaría TODOS los marcos duplicados. Entonces, si las tramas extraídas fueron así:

A, A, A, B, B, B, C, C, A, A, C, C, C, B, B, B ...

Correr a través de un removedor de archivos duplicados típica, me gustaría tener: a, B, C

lo que yo quiero es: a, B, C, a, C, B

El El comando que estoy usando actualmente para extraer las imágenes es:

ffmpeg.exe -i archivo.avi -ss 0 -sameq -f imagen2 -r 1 im edades% 5d.png

Estaba recibiendo cada cuadro de antemano (eliminando el -r 1 de arriba), pero eso generaba demasiados marcos para tratar, ya que estas reuniones en línea pueden durar horas, así que por ahora, yo obtener un fotograma por segundo del archivo.

Una solución basada en Windows sería preferible, sin embargo, estoy seguro de que otras personas estarían interesadas en soluciones en otras plataformas, si están disponibles.

Cualquier solución o punto en la dirección correcta es muy apreciada.

+0

¿Alguna vez encontrar una solución a esto? Estoy buscando casi lo mismo. –

Respuesta

7

¿Has probado con la opción -vsync 0?

+0

Eso se acerca, pero cuando lo probé, 'fdupes' aún encontró más marcos idénticos consecutivos para descartar. –

+1

+1 En mi caso (baja velocidad de cuadros) tuve cada fotograma duplicado 50 veces. Con esta opción solo había 1 fotograma duplicado por cada 1000 fotogramas no duplicados. – user2518618

+0

Aparece exactamente en el número de marcos de entrada para mí. Tal vez haya algunos marcos de transición negros que están apareciendo como duplicados para los otros comentaristas. –

0

Puede alcanzarlo con mpdecimate filtro de video (seguido de setpts filtro para la sincronización correcta).
Utilice esta opción:

-vf mpdecimate,setpts=N/FRAME_RATE/TB 

Tal vez no funcionará con el mandato original y necesitará usarlo para convertir primero el vídeo original para el video sin marcos duplicados:

ffmpeg.exe -i file.avi -vf mpdecimate,setpts=N/FRAME_RATE/TB outfile.avi 

y luego utilizar el outfile.avi para producir la secuencia de imágenes.

(En el caso de necesidad el filtro mpdecimate se puede ajustar sus opciones hi, lo y frac pero los valores por omisión funcionan bien.)