java生成视频缩略图

java编程语言使用ffmpeg生成视频

ffmpeg工具包提取地址:
链接: https://pan.baidu.com/s/1O8Hj0Yjnzx_pKDoYdItT7g 提取码: n7jt

/**
 * 生成视频缩略图
 *
 * @param videoName
 */
public String buildVideoImg(HttpServletRequest request,String videoName) throws Exception {
    String ffmpegPath = new File(request.getServletContext().getRealPath("ffmpeg"), "/ffmpeg.exe").getAbsolutePath();
    String dir=request.getServletContext().getRealPath("video");
    FileHelper.mkdir(dir+"/img/");
    String imgPath = videoName+".jpg";
    try {
        VideoHelper.getVideoImage(ffmpegPath, dir+"/"+videoName, dir+"/img/"+imgPath);
    } catch (Exception e) {
        new File(dir+"/"+videoName).delete();
        e.printStackTrace();
    }
    return imgPath;
}
/**
 * 获得视频缩略图,获取成功返回true,获取失败返回false
 *
 * @param ffmpegPath   是ffmpeg.exe存放的路径
 * @param path         是视频文件的存放路径
 * @param outImagePath 输出缩略图的保存路径
 * @return
 */
public static boolean getVideoImage(String ffmpegPath, String path, String outImagePath) throws Exception {
    boolean flag=true;
    try {
        File file = new File(path);
        if (!file.exists()) {    //判断视频文件是否存在
            return false;
        }
        //设置参数
        List<String> commands = new java.util.ArrayList<String>();
        commands.add(ffmpegPath);//这里设置ffmpeg.exe存放的路径
        commands.add("-i");
        commands.add(path);//这里是设置要截取缩略图的视频的路径
        commands.add("-y");
        commands.add("-f");
        commands.add("image2");
        commands.add("-ss");
        commands.add("10");//这里设置的是要截取视频开始播放多少秒后的图,可以自己设置时间
        commands.add("-t");
        commands.add("0.001");
        commands.add("-s");
        commands.add("660x660");//这里设置输出图片的大小
        commands.add(outImagePath);//这里设置输出的截图的保存路径

        //截取缩略图并保存
        ProcessBuilder builder = new ProcessBuilder();
        builder.command(commands);
        builder.start();
    } catch (Exception e) {
        e.printStackTrace();
        flag=false;
        log.error("获取视频缩略图失败");
    }
    return flag;
}

发布了31 篇原创文章 · 获赞 1 · 访问量 5693

猜你喜欢

转载自blog.csdn.net/wjs040/article/details/91451591