gpt4 book ai didi

java - 如何在屏幕捕获程序中使用 Java 获得超过 30FPS?

转载 作者:行者123 更新时间:2023-11-29 10:17:33 24 4
gpt4 key购买 nike

我目前正在使用 Java 中的 Robot 类来录制屏幕。但是,它并没有达到每秒 30 帧的最低要求。我不是在重新创建对象,而是尽可能高效,但平均每秒只有 15 帧左右。机器人根本不会切割它。

我可以使用什么来捕获屏幕?我已经尝试过 Xuggle,但我似乎也无法足够快地捕捉它。

最佳答案

对于遵循 X11 标准的操作系统(Linux、FreeBSD、Solaris 等),我们可以通过 JavaCV 这样做和 FFmpeg :

import com.googlecode.javacv.*;

public class ScreenGrabber {
public static void main(String[] args) throws Exception {
int x = 0, y = 0, w = 1024, h = 768; // specify the region of screen to grab
FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(":0.0+" + x + "," + y);
grabber.setFormat("x11grab");
grabber.setImageWidth(w);
grabber.setImageHeight(h);
grabber.start();

CanvasFrame frame = new CanvasFrame("Screen Capture");
while (frame.isVisible()) {
frame.showImage(grabber.grab());
}
frame.dispose();
grabber.stop();
}
}

我不知道 Windows 或 Mac OS X,但我怀疑我们需要直接访问 native API。尽管如此,JavaCPP可以提供帮助。

关于java - 如何在屏幕捕获程序中使用 Java 获得超过 30FPS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13773870/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com