Introducción

Os dejo esta pequeña aplicación desarrollada en C# .NET que a partir de un vídeo (mp4, avi, etc) podemos extraer a .GIF o MP4 una secuencia indicándole el tiempo de inicio y de fin, el tamaño y la calidad resultante en FPS.

Las rutinas que hacen posible la "magia" funcionan gracias a ffmpeg.

 undefined

Generar vídeo a partir de inicio y fin

ffmpeg-i videoOrigen.mp4 -ss HH:MM:SS.00 -c copy -t HH:MM:SS.00 videoDestino.mp4

 

Generar GIF a partir de inicio y fin indicando FPS y Tamaño 

1.- Lo primero que tenemos que crear es una paleta de colores a partir del fragmento de vídeo que queremos extraer. 

ffmpeg-y -ss HH:MM:SS.00 -t HH:MM:SS.00 -i videoOrigen.mp4 -vf fps=FPS,scale=SCALA:-1:flags=lanczos,palettegen palette.png

 

2.- El ultimo paso es extraer el fragmento de vídeo utilizando la paleta de colores que creamos en el paso anterior dando resultado un GIF con los colores reales.

ffmpeg-ss HH:MM:SS.00 -t HH:MM:SS.00 -i videoOrigen.mp4 -i palette.png -filter_complex ""fps=FPS,scale=SCALA:-1:flags=lanczos[x];[x][1:v]paletteuse"" videoDestino.mp4

 Si queréis saber mas parámetros que acepta ffmpeg los podéis ver aquí. Ir a la info.