网上找了很多,发现都运行成功但是看不到截图,找了一些资料发现原来是运行命令的路径问题,代码如下
public static boolean testjt(){
String ffmpeg_path = "D://ffmpeg//ffmpeg";
// String veido_path = "D://ffmpeg//2.mp4";
String veido_path = "D://ffmpeg//2.mkv";
String image_path = "D://ffmpeg//aaa.jpg";
List<String> commands = new ArrayList<String>();
commands.add(ffmpeg_path);
commands.add("-ss");//偏移量
commands.add("2");//这个参数是设置截取视频多少秒时的画面
commands.add("-i");// 输入
commands.add(veido_path);
// commands.add("-y");
commands.add("-f");//格式化,要输出什么格式的截图
// commands.add("image2");
commands.add("mjpeg");
// commands.add("-t");
// commands.add("0.001");
// commands.add("-s"); //-s表示截图的的大小
// commands.add("960*240"); //这个参数是设置截取图片的大小,但不可任意填写
commands.add("-vframes");
commands.add("1");//截取1帧
commands.add(image_path);
try {
ProcessBuilder builder = new ProcessBuilder();
builder.directory(new File("D://"));//切换工作目录,不加这一句还真不行,此目录为你ffmpeg文件夹的存放目录
builder.command(commands);
builder.start();
System.out.println("截取成功");
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}