我是java编程语言的初学者,最近我有一个从视频文件中捕获帧的工作,我还开发了一个程序来实现这一点,但是当视频在屏幕上播放时有帮助任何球员。
我已经开发了以下程序。
public class Beginning implements Runnable {
private Thread thread;
private static long counter = 0;
private final int FRAME_CAPTURE_RATE = 124;
private Robot robot;
public Beginning() throws Exception {
robot = new Robot();
thread = new Thread(this);
thread.start();
}
public static void main(String[] args) throws Exception {
Beginning beginning = new Beginning();
}
public void run() {
for (;;) {
try {
Rectangle screenRect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
BufferedImage bufferedImage = robot.createScreenCapture(screenRect);
ImageIO.write(bufferedImage, "png", new File("D:\\CapturedFrame\\toolImage" + counter + ".png"));
counter++;
thread.sleep(FRAME_CAPTURE_RATE);
} catch (Exception e) {
System.err.println("Something fishy is going on...");
}
}
}
}
我的先生告诉要抓取任何指定视频中的所有帧而不在屏幕上播放,任何人都可以建议我,我该怎么办。
答案 0 :(得分:1)
那么,您可以简单地使用OpenCV。这是一个例子。
https://www.tutorialspoint.com/opencv/opencv_using_camera.htm
您可以使用以下任何视频代替VideoCapture类中的摄像机:
VideoCapture capture = new VideoCapture(0);
代替上面的代码行,您可以使用
VideoCapture capture = new VideoCapture("/location/of/video/");
我希望这就是您想要的。