Extraer el primer y último fotograma de un vídeo con ffmpeg
Cuando queremos hacer una transición realmente espectacular entre dos vídeos, muchas veces ffmpeg se nos queda corto y tenemos que extraer el último fotograma de un vídeo, el primero del siguiente vídeo y usar ImageMagick o G’MIC para hacer la transición.
Si bien podríamos extraer todos los fotogramas de los vídeos con ffmpeg y luego hacer la transición, o recortar el comienzo de un vídeo y el final de otro para extraer los fotogramas, muchas veces con extraer sólo el último fotograma de un vídeo y el primero del siguiente, podremos conseguir hacer esa transición deseada. Para ello, veremos dos instrucciones:
ffmpeg -sseof -1 -i video1.mp4 -update 1 -q:v 1 last_frame.png
El modificador -sseof busca desde el final y -update es una opción muxer de image2 que le dice a ffmpeg que sobrescriba el archivo de salida. Irá sobreescribiendo la salida hasta que se procese el último cuadro.
Y para extraer el primer fotograma del segundo vídeo:
ffmpeg -i video2.mp4 -vf "select=eq(n\,0)" -q:v 3 first_frame.png
Una vez extraídos los dos fotogramas, sólo nos quedará hacer la transición con ImageMagick y generar un vídeo a partir de esos fotogramas creados.