java自己写的视频截图工具

这篇博客介绍了如何利用ffmpeg工具进行视频截图并生成PNG图片。首先,需要安装ffmpeg并配置环境变量。然后,通过指定命令行参数,如视频源文件、截图时间、图片尺寸等,可以实现从视频中截取指定时刻的图像。提供的代码示例展示了如何在Java中调用ffmpeg命令进行截图操作。此外,文章提到这只是一个简单的例子,ffmpeg还可以用于视频格式转换等更多功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
 * 首先我们需要安装ffmpeg插件 具体安装可以查看此网址
 * https://blog.csdn.net/xiaoxueyaoxuexi/article/details/110451006?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163030796716780265495145%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163030796716780265495145&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-110451006.first_rank_v2_pc_rank_v29&utm_term=ffmpeg%E5%AE%89%E8%A3%85&spm=1018.2226.3001.4187
 * 设置好环境变量就可以使用了
 */


/**
 * 视频截取  PNG图片生成
 */                                //需要截图的视频              截图后所存放的地址
public boolean imagePNGGeneration(String videoSourceFile, String ImageGenerationPath) {
    // 创建一个List集合来保存从视频中截取图片的命令
    List<String> cutpic = new ArrayList<String>();
    cutpic.add("F:\\ffmpeg-4.4-essentials_build\\bin\\ffmpeg.exe");//插件在本地所存放的地址
    cutpic.add("-i");
    cutpic.add(videoSourceFile); // 要截图的视频源文件
    cutpic.add("-y");
    cutpic.add("-f");
    cutpic.add("image2");
    cutpic.add("-ss"); // 添加参数"-ss",该参数指定截取的起始时间
    cutpic.add("8"); // 添加起始时间为第17秒
    cutpic.add("-t"); // 添加参数"-t",该参数指定持续时间
    cutpic.add("0.001"); // 添加持续时间为1毫秒
    cutpic.add("-s"); // 添加参数"-s",该参数指定截取的图片大小
    cutpic.add(352 + "*" + 288); // 添加截取的图片大小为350*240
    cutpic.add("-pix_fmt");
    cutpic.add("pal8");
    cutpic.add(ImageGenerationPath); // 添加截取的图片的保存路径
    ProcessBuilder builder = new ProcessBuilder();//通过cmd命令进行生成
    return getImage(builder, cutpic, ImageGenerationPath);
}

private static boolean getImage(ProcessBuilder builder, List<String> cutpic, String imageGenerationPath) {
    try {
        builder.command(cutpic);
        builder.redirectErrorStream(true);
        builder.start();
        System.out.println("图片生成完成,位置为:" + imageGenerationPath);
    } catch (Exception e) {
        e.printStackTrace();
        return false;
    }
    return true;
}
/**
 * 此方法只是一个很简单实例,大家可以参考一下 需要视频转格式便可以使用其中的命令来进行转换 具体可转换的格式大家可以网上搜索一下_(:з」∠)_
 * */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值