¿Hay alguna forma de extraer los intra-cuadros y preservarlos tal como están desde FFMPEG o un programa similar? Sé que puedes extraer cuadros a una secuencia de imágenes JPEG usando -f image2
. Pero esas son imágenes completas de cada uno de los cuadros. Me gustaría exportar solo la imagen del cambio en movimiento, para que los cuadros P y B solo muestren el cambio en movimiento excluyendo o enmascarando el área no cambiada de las imágenes.
es posible?
El comando básico de exportación de cuadros que estoy usando. Esto me da imágenes enmarcadas completas de cada cuadro, en el FPS especificado.
ffmpeg -i input.mp4 -r 12 -an -b 1024k -y -f image2 frame%4d.jpg
Espero exportar los cuadros para tener una carpeta de cuadros donde el primer cuadro sería una imagen completa, el siguiente cuadro sería solo los datos de la imagen donde la imagen necesita ser redibujada. Exponer la redundancia temporal entre los dos cuadros (¿no es esto lo que hacen los cuadros I, P, B?)
[in]
y[out]
no es necesario en el primer ejemplo.select
yshowinfo
.Los marcos P y B generalmente no contienen datos de imágenes nuevas para cada una de las áreas que han cambiado. Más bien, la imagen se divide en macrobloques de diferentes tipos. Algunos tipos de macrobloques contienen nuevos datos de imagen, pero la mayoría calcula el contenido en base a otras imágenes de referencia y vectores de movimiento.
No es exactamente lo que estaba pidiendo, pero usará el color para mostrarle el tipo de cada macrobloque:
o
Esto también le mostrará los vectores de movimiento:
Consulte el enlace para obtener más información sobre los colores de cada MB:
Depuración de documentación de Macroblocks y Motionsvectors FFMpeg
fuente