You can use the ffmpeg wrapper in Java - Xuggler and the built-in Java Robot . Here is sample code with Xuggler.
final Robot robot = new Robot();
final Toolkit toolkit = Toolkit.getDefaultToolkit();
final Rectangle screenBounds = new Rectangle(toolkit.getScreenSize());
final IMediaWriter writer = ToolFactory.makeWriter("output.mp4");
writer.addVideoStream(0, 0,
FRAME_RATE,
screenBounds.width, screenBounds.height);
long startTime = System.nanoTime();
for (int index = 0; index < SECONDS_TO_RUN_FOR*FRAME_RATE.getDouble(); index++)
{
BufferedImage screen = robot.createScreenCapture(screenBounds);
BufferedImage bgrScreen = convertToType(screen,
BufferedImage.TYPE_3BYTE_BGR);
writer.encodeVideo(0,bgrScreen,
System.nanoTime()-startTime, TimeUnit.NANOSECONDS);
System.out.println("encoded image: " +index);
Thread.sleep((long) (1000 / FRAME_RATE.getDouble()));
}
writer.close();
Another option is the Screentoaster website, but I have no doubt what frame rate it provides.
source
share