// // Source code recreated from a .class file by IntelliJ IDEA // (powered by FernFlower decompiler) // package org.jeecg.modules.doc.vo; import java.awt.image.BufferedImage; import java.awt.image.ImageObserver; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import javax.imageio.ImageIO; import org.bytedeco.javacv.FFmpegFrameGrabber; import org.bytedeco.javacv.Frame; import org.bytedeco.javacv.Java2DFrameConverter; import org.jeecg.modules.doc.exception.QiwenException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class VideoOperation { private static final Logger log = LoggerFactory.getLogger(VideoOperation.class); public VideoOperation() { } public static InputStream thumbnailsImage(InputStream inputStream, File outFile, int width, int height) throws IOException { if (inputStream == null) { throw new QiwenException(999999, "Get the video preview. The input stream is null."); } else { try { FFmpegFrameGrabber ff = new FFmpegFrameGrabber(inputStream); ff.start(); int videoLength = ff.getLengthInFrames(); Frame f = null; for(int i = 0; i < videoLength; ++i) { f = ff.grabFrame(); if (i > 20 && f.image != null) { break; } } int owidth = f.imageWidth; int oheight = f.imageHeight; height = (int)((double)width / (double)owidth * (double)oheight); Java2DFrameConverter converter = new Java2DFrameConverter(); BufferedImage fecthedImage = converter.getBufferedImage(f); BufferedImage bi = new BufferedImage(width, height, 5); bi.getGraphics().drawImage(fecthedImage.getScaledInstance(width, height, 4), 0, 0, (ImageObserver)null); File saveDir = outFile.getParentFile().getAbsoluteFile(); if (!saveDir.exists()) { saveDir.mkdirs(); } ImageIO.write(bi, "jpg", outFile); ff.stop(); } catch (IOException var14) { var14.printStackTrace(); } catch (Exception var15) { String errorMessage = var15.getMessage(); if (errorMessage.contains("AWTError")) { log.info(var15.getMessage()); } log.error(var15.getMessage()); } return new FileInputStream(outFile); } } }