从电影中获取帧
从电影中获取单帧(仅支持 AVC,MP4 中的 H.264,ISO BMF,Quicktime 容器):
int frameNumber = 150;
BufferedImage frame = FrameGrab.getFrame(new File("filename.mp4"), frameNumber);
ImageIO.write(frame, "png", new File("frame_150.png"));
从电影中获取一系列帧(仅支持 AVC,MP4 中的 H.264,ISO BMF,Quicktime 容器):
double startSec = 51.632;
FileChannelWrapper ch = null;
try {
ch = NIOUtils.readableFileChannel(new File("filename.mp4"));
FrameGrab fg = new FrameGrab(ch);
grab.seek(startSec);
for (int i = 0; i < 100; i++) {
ImageIO.write(grab.getFrame(), "png",
new File(System.getProperty("user.home"), String.format("Desktop/frame_%08d.png", i)));
}
} finally {
NIOUtils.closeQuietly(ch);
}