java 调用ffmpeg.exe截取封面图

 

cmd执行

D:\ffmpeg>ffmpeg -i http://localhost:10000/video/1.mp4 -ss 00:00:01 -vframes 1 1.jpg

  

java代码调用ffmpeg.exe截图

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class FFMpegExample {
    public static void main(String[] args) {
        FFMpegExample.test01();//对多个视频截图
        //FFMpegExample.test02();//对一个视频截一张图
    }

    private static void test01(){
        String ffmpegPath = "D:/ffmpeg/ffmpeg.exe"; // ffmpeg可执行文件路径

        try {
            List<String> list= new ArrayList<>();
            list.add("http://localhost:8088/永生族.mp4");
            list.add("http://localhost:8088/我的女友是机器人.mp4");
            list.add("http://localhost:8088/神话.mp4");
            list.add("http://localhost:8088/火烧红莲寺.mp4");
            list.add("http://localhost:8088/霹雳五号.mp4");

            list.add("http://localhost:8088/大话西游之月光宝盒.mp4");
            list.add("http://localhost:8088/奇异博士.mp4");
            list.add("http://localhost:8088/美丽心灵的永恒阳光.mkv");
            list.add("http://localhost:8088/月球陨落.mkv");
            list.add("http://localhost:8088/憨豆特工2.mp4");

            list.add("http://localhost:8088/憨豆的黄金周.mp4");
            list.add("http://localhost:8088/楼兰古卷之沙海魔窟.mp4");
            list.add("http://localhost:8088/永生族.mp4");
            list.add("http://localhost:8088/沙丘行星.mp4");
            list.add("http://localhost:8088/真实的谎言.mp4");


            ProcessBuilder processBuilder = new ProcessBuilder();

            for (int i = 0; i < list.size(); i++) {
                // 设置要运行的命令及参数
                processBuilder.command("cmd", "/c", ffmpegPath + " -i "+list.get(i)+" -ss 00:00:09 -vframes 1 out-p-"+ i+".jpg");

                // 开始执行命令并等待完成
                Process process = processBuilder.start();
                int exitCode = process.waitFor();

                if (exitCode == 0) {
                    System.out.println(i+"-图片已成功生成!");
                } else {
                    System.err.println(i+"-无法生成图片,错误代码:" + exitCode);
                }
            }
        } catch (IOException | InterruptedException e) {
            e.printStackTrace();
        }
    }

    private static void test02(){
        String ffmpegPath = "D:/ffmpeg/ffmpeg.exe"; // FFmpeg可执行文件路径

        try {
            ProcessBuilder processBuilder = new ProcessBuilder();

            // 设置要运行的命令及参数
            processBuilder.command("cmd", "/c", ffmpegPath + " -i http://localhost:8088/永生族.mp4 -ss 00:00:01 -vframes 1 22.jpg");

            // 开始执行命令并等待完成
            Process process = processBuilder.start();
            int exitCode = process.waitFor();

            if (exitCode == 0) {
                System.out.println("图片已成功生成!");
            } else {
                System.err.println("无法生成图片,错误代码:" + exitCode);
            }
        } catch (IOException | InterruptedException e) {
            e.printStackTrace();
        }
    }
}

  

 

posted @ 2024-01-09 23:09  牛大胆V5  阅读(24)  评论(0)    收藏  举报