前言
在开发过程中,有时候要用给视频流截图,可以用javacv
进行截图,支持flv、mp4等格式
javacv使用
1、引入以下包
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>javacv-platform</artifactId>
<version>1.5.3</version>
</dependency>
2、程序例子如下
import org.bytedeco.javacv.FFmpegFrameGrabber;
import org.bytedeco.javacv.Frame;
import org.bytedeco.javacv.FrameGrabber;
import org.bytedeco.javacv.Java2DFrameConverter;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import static org.bytedeco.javacv.FFmpegFrameGrabber.createDefault;
public class UrlDemo {
public static void main(String[] args) throws IOException {
BufferedImage bufferedImage = getBufferedImageByFrame("D:/light/20241121160212.flv");
ImageIO.write(bufferedImage, "JPEG", new File("./1.jpg"));
}
private static BufferedImage getBufferedImageByFrame(String filePath) throws IOException {
FFmpegFrameGrabber grabber = createDefault(filePath);
return getBufferedImageByFrame(grabber);
}
private static BufferedImage getBufferedImageByFrame(FFmpegFrameGrabber grabber)
throws FrameGrabber.Exception {
grabber.start();
Frame frame;
frame = grabber.grabImage();
Java2DFrameConverter converter = new Java2DFrameConverter();
BufferedImage buffer = converter.getBufferedImage(frame);
grabber.stop();
return buffer;
}
}
输出结果如下:
总结
用于视频流截图有非常多的工具,看开发过程中怎么做技术选型