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;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值