视频通过api获取图片

编程

package com.htdadao.common.utils;

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.nio.Buffer;

import java.util.Date;

import java.util.UUID;

public class FileToImgUtil {

private String url;

public static String cutPhotoFromVedio(String videoUrl){

FFmpegFrameGrabber ff = null;

String videoPath = videoUrl;

String imgPath = "D:/alarmPicture"+new Date().toString() + UUID.randomUUID()+".jpg";

File targetFile = new File(imgPath);

try{

ff = new FFmpegFrameGrabber(videoPath);

ff.start();

int lenght = ff.getLengthInFrames();

int i = 0;

Frame f = null;

f = ff.grabFrame();

int owidth = f.imageWidth;

int oheight = f.imageHeight;

//截取的帧进行等比例缩放

int width = 800;

int height = (int)(((double)width/owidth)*oheight);

Buffer[] img = f.image;

BufferedImage bufferedImage = new Java2DFrameConverter().convert(f);

ImageIO.write(bufferedImage, "jpg", targetFile);

} catch (Exception e) {

e.printStackTrace();

}

return imgPath;

}

private String grapPicture(String camera1) throws IOException {

String imgDetail;

String imgPath1 = FileToImgUtil.cutPhotoFromVedio(camera1);

InputStream in = new FileInputStream(imgPath1);

byte[] imgBytes = new byte[in.available()];

in.read(imgBytes);

BASE64Encoder encoder = new BASE64Encoder();

imgDetail = encoder.encode(Objects.requireNonNull(imgBytes));

return imgDetail;

}

}

以上是 视频通过api获取图片 的全部内容, 来源链接: utcz.com/z/510789.html

回到顶部