Como capturar la pantalla con java

Hace muchos años me tope con el reto de hacer un capturador de pantalla con java, es decir tomar los famosos “panallazos” con intervalos de tiempo, sin intervalos y finalmente con intervalos bajos de tiempo para luego “unir” toda la secuencia en un vídeo.

Encontré un pro y un contra con esto, aquí les va para su consideración:

  • PRO: Es ridículamente fácil de hacer 🙂
  • CONTRA: Es bastante lento en performance 🙁 [no lo recomiendo si lo que quieren hacer es un live stream]

bien el concepto es bastante simple, y partimos con la idea de una clase en java exclusivamente para capturar la pantalla:

Esto es fácil si nos ayudamos con el API que ofrece java.awt.Robot

Teniendo esto como punto de partida podemos crear un thread que tome un pantallazo cada cierto intervalo de tiempo durante un tiempo determinado.

y ahí tienen, el toque final de mi aplicación era crear un vídeo a partir de las capturas, esto lo logre con una herramienta externa llamada ffmpeg si usan linux se puede instalar desde una terminal, y si usan windows hay que referenciar un ejecutable, pero es tan fácil como el siguiente comando:

la parte que dice %03d.jpg indica que el nombre del archivo es un dígito de hasta 3 números con la posibilidad de ceros al inicio, y así toma la secuencia según la numeración de los archivos. Para ejecutar esto en java es tan fácil como esto:

Claro que ustedes podrían verse en la necesidad de incluir el path completo a “pelicula.mp4” (o como quieran que se llame el vídeo) y el path completo a ffmpeg (.exe para usuarios de widnogs). Pero eso ya queda a discreción de cada quien.

Si quieren conseguir FFMPEG sin salir de mi blog aqui los links de descarga 🙂

FFMPEG para windows

FFMPEG para linux (o apt-get install ffmpeg, o yum install ffmpeg)

FFMPEG para OSx

bueno espero que esto ilumine a alguien! yo pase varias horas investigando.

 

Saludos.-

Loading Comments…
more
Allowed HTML tags and attributes: <a href="" title=""> <blockquote> <code> <em> <strong>