ffmpeg截取视频的第一帧画面,并保存为本地截图

终端窗口代码演示

要使用FFmpeg截取视频的第一帧作为封面,可以使用以下命令行指令:

ffmpeg -i input.mp4 -ss 00:00:01 -vframes 1 output.jpg

这里是每个参数的说明:

-i input.mp4:指定输入视频文件的路径和文件名。
-ss 00:00:01:指定从视频的第1秒开始截取第一帧。你可以根据需要更改时间戳值。
-vframes 1:指定只输出一帧图像作为封面。
output.jpg:指定输出的封面图像文件路径和文件名。你可以将文件名更改为你喜欢的任何名称和格式。

请确保你已经安装了FFmpeg,并将其添加到系统的环境变量中。然后,打开终端窗口,切换到包含输入视频文件的目录,并运行上述命令。
执行命令后,FFmpeg将从视频中提取第一帧,并保存为指定的图像文件。你可以在指定的输出路径中找到生成的封面图像。

下面是 JAVA代码演示

public static String interceptImage(String url){

        String tempDir = FileUtil.SYS_TEM_DIR;
        String videoUrl = url; // 视频URL

        String replace = UUID.randomUUID().toString().replace("-", "");
        String outputImagePath = tempDir+replace+".jpg"; // 封面保存路径

        try {
            // 执行FFmpeg命令
            ProcessBuilder processBuilder = new ProcessBuilder("ffmpeg","-i" , videoUrl , "-ss", "00:00:01", "-vframes", "1" , outputImagePath);
            Process process = processBuilder.start();

            // 获取命令输出结果
            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getErrorStream()));
            String line;
            while ((line = reader.readLine()) != null) {
                log.info("reader.readLine:{}", line);
            }
            // 等待命令执行完成
            int exitCode = process.waitFor();
            if (exitCode == 0) {
                log.info("封面提取完成!");
                return tempDir+replace+".jpg";
            } else {
                log.error("封面提取失败!exitCode:{}", exitCode);
            }
        } catch (Exception e) {
            log.error("processBuilder error.", e);
        }
        return null;
    }
}
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值