代码示例org.bytedeco javacv 1.5.6 org.bytedeco ffmpeg-platform 4.4-1.5.6
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 java.util.*;
public class Test {
public static void main (String [] args) throws Exception{
String fileUrl = "C:\Users\Administrator\Desktop\《摩擦力》说课.mp4";
FFmpegframeGrabber fFmpegframeGrabber = new FFmpegframeGrabber(fileUrl);
fFmpegframeGrabber.start();
frame frame = null;
//获取视频总帧数
int frames = fFmpegframeGrabber.getLengthInframes();
int i = 0;
while (i <= frames){
frame = fFmpegframeGrabber.grabImage();
//截取第10帧
if(frame!=null && i==10){
String fileName = "C:\Users\Administrator\Desktop\"+System.currentTimeMillis()+".jpg";
File file = new File(fileName);
//创建BufferedImage对象
Java2DframeConverter converter = new Java2DframeConverter();
BufferedImage bufferedImage = converter.getBufferedImage(frame);
ImageIO.write(bufferedImage,"jpg",file);
break;
}
i++;
}
fFmpegframeGrabber.stop();
fFmpegframeGrabber.close();
}
运行效果



