如何从视频java中提取帧?
问题描述:
我正在研究一个项目对视频进行分析,并且我想将视频分割成单独处理的帧。我看了几个开源库,包括Xuggler和FFMPEG,但它们都过时了,无法使用。有没有简单的方法可以从视频中提取帧并将它们作为BufferedImage
的集合进行处理?如何从视频java中提取帧?
答
关注这个代码
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import org.bytedeco.javacpp.opencv_core.IplImage;
import org.bytedeco.javacv.FFmpegFrameGrabber;
import org.bytedeco.javacv.FrameGrabber.Exception;
public class Read{
public static void main(String []args) throws IOException, Exception
{
FFmpegFrameGrabber frameGrabber = new FFmpegFrameGrabber("D:/video.mp4");
frameGrabber.start();
IplImage i;
try {
i = frameGrabber.grab();
BufferedImage bi = i.getBufferedImage();
ImageIO.write(bi,"png", new File("D:/Img.png"));
frameGrabber.stop();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
+0
您的代码将产生第一帧(每秒1) 图像如何生成特定帧的图像? –
FFMPEG仍在积极维护http://ffmpeg.org/的最后一个版本是本月... – litelite