1️⃣配置Maven 在pox.xml中加入
org.bytedeco
javacv-platform
1.5.7
2️⃣创建服务器托管网FrameExtractor
import org.bytedeco.javacv.*;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
public class FrameExtractor {
public static void main(String[] args) {
// 视频文件路径
String videoFilePath = "/Users/canna//XXX.mp4";//此处写自己的视频路径
// 创建FFmpegFrameGrabber对象
FFmpegFrameGrabber服务器托管网 grabber = new FFmpegFrameGrabber(videoFilePath);
try {
// 打开视频文件
grabber.start();
// 逐帧抓取视频
Frame frame;
int frameNumber = 1;
while ((frame = grabber.grabImage()) != null) {
BufferedImage bufferedImage = frameToBufferedImage(frame);
// 生成保存帧图像的文件路径
String outputFilePath = String.format("%s/frame_%05d.jpg", "/Users/canna//XXX", frameNumber);//此处写自己的保存路径
// 保存帧图像到文件
try {
ImageIO.write(bufferedImage, "jpg", new File(outputFilePath));
System.out.println("保存帧图像:" + outputFilePath);
} catch (IOException e) {
e.printStackTrace();
}
frameNumber++;
}
// 关闭视频文件
grabber.stop();
} catch (org.bytedeco.javacv.FrameGrabber.Exception e) {
e.printStackTrace();
}
}
/**
* 将Frame转换为BufferedImage
*/
private static BufferedImage frameToBufferedImage(Frame frame) {
Java2DFrameConverter converter = new Java2DFrameConverter();
return converter.getBufferedImage(frame);
}
}
3️⃣运行 结果如下
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: 从 Java 大神 Joshua Bloch 提炼 API 设计的三个核心原则
3月16日,北京源创会 —— “数据库,2024 开炫” 原文地址 一个 API 应该容易学习和使用,且不易被误用。它还应该随着时间而发展,优秀的设计需要预见并适应这种变化。 Joshua Bloch 曾在 Sun 担任杰出工程师,之后加入谷歌成为首席 Jav…