La idea detrás de mi artículo Obtén el primer frame de un GIF animado con ImageMagick era mejorar el rendimiento de una página para que no cargase un GIF animado de forma automática, tomando en su lugar el primer fotograma, mostrándolo, y permitiendo a los usuarios que hicieran clic para activar la animación del GIF. Esta estrategia ahorra el tiempo de carga de una web, así como de la GPU. La mejor solución para tratar con GIFs animados es ImageMagick pero, ¿qué debemos utilizar para hacer lo mismo con vídeos? La respuesta es sencilla, ffmpeg. Los siguientes comandos te permitirá exportar imágenes (pantalla o frames) de un video.
Obtener el primer frame
El caso más común para obtener una imagen de un vídeo es guardar el primer frame (o un frame individual de un tiempo dado) de un vídeo. Puedes implementar esto de lo que estamos hablando con el código de a continuación:
ffmpeg -i mivideo.webm -ss 00:00:01 -vframes 1 captura.png
Puedes ajustar el argumento -ss dependiendo de la hora:minuto:segundo de donde quieras extraer el frame. Es decir, pasando como argumento el tiempo, el comando extraerá el frame del contenido ateniendose a ese tiempo.
Frames entre intervalos de segundos
Si lo que deseas es extraer imagenes de unos intervalos de tiempo dados (espero que de un vídeo corto), puedes usar lo siguiente:
ffmpeg -i mivideo.webm -vf fps=fps=1 captura-%d.png
La %d representa el número incremental que se usará para anotar el número del segundo en cada fichero. Esto, dependiendo de lo largo que sea el intervalo y los frames que haya dentro, generará un número determinado de ficheros.
Frames entre intervalos de minutos
La librería ffmpeg también te permite hacer lo desarrollado en el punto anterior, pero con minutos. Para ello utilizaremos el siguiente código:
ffmpeg -i mivideo.webm -vf fps=fps=1/60 captura-%03d.jpg
%03d hace referencia al número ordinal de cada captura que debe estar formateado por 3 dígitos.
Al igual que la herramienta ImageMagick, la cual utilizamos en el artículo anterior, ffmpeg es un elemento básico en la gestión de contenido multimedia desde hace varios años. Es muy de confianza, es respetado, y al igual que el reproductor VLC, puedes utilizar casi cualquier archivo de vídeo en él y conseguir un buen resultado!
Y este ha sido el artículo en el que trataba explicaros cómo obtener pantallazos de videos con ffmpeg, esperamos que te haya gustado y sepas aplicarlo en tus futuros proyectos. Muchas gracias a la autora del código, David Walsh, por cedernos la publicación del mismo.
Ya sabes que si nos quieres proponer un tema que quieres ver reflejado como un tutorial o como una práctica, solo tienes que hacer uso del área de comentarios de un poco más abajo. Por el contrario, si quieres enviarnos tus propios tutoriales, puedes hacerlo a través de la intranet de usuarios que está habilitada para ello, a través del menú Enviar Tutorial. Ya sabes, ayúdanos a crecer con tus conocimientos. ¡Un saludo y feliz código!