javacv 讀取mp4,avi等視頻文件并截圖保存圖片到本地
代碼如下:
package com.example.javacvstudy;
import org.bytedeco.javacv.FFmpegFrameGrabber;
import org.bytedeco.javacv.Frame;
import org.bytedeco.javacv.Java2DFrameConverter;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import org.opencv.core.Core;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class ReadMp4 {
public static void main(String[] args) {
// 加載OpenCV庫(kù)
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
// 視頻文件路徑
String videoPath = "D:\\down\\baozi.mp4"; // 替換為您的視頻路徑
// 保存幀截圖的文件夾路徑
String outputFolderPath = "D:\\temp\\img"; // 替換為您的輸出文件夾路徑
File outputFolder = new File(outputFolderPath);
outputFolder.mkdirs();
// 打開(kāi)視頻文件
try (FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(videoPath)) {
grabber.start();
// 遍歷視頻的每一幀
int frameNumber = 0;
Java2DFrameConverter converter = new Java2DFrameConverter();
while (true) {
Frame frame = grabber.grabImage();
if (frame == null) {
break;
}
// 將幀轉(zhuǎn)換為BufferedImage
BufferedImage image = converter.convert(frame);
// 保存圖片
String outputFilePath = outputFolderPath + File.separator + "frame_" + frameNumber + ".jpg";
File outputFile = new File(outputFilePath);
ImageIO.write(image, "jpg", outputFile);
frameNumber++;
Thread.sleep(1000);
}
grabber.stop();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("幀截圖保存完成!");
}
}
運(yùn)行結(jié)果:
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-682350.html
測(cè)試視頻mp4 下載文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-682350.html
到了這里,關(guān)于javacv 基礎(chǔ)04-讀取mp4,avi等視頻文件并截圖保存圖片到本地的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!