ffmpeg 截取视频图片
/**
* 截取视频图片
*
* @param veido_path
* 视频路径
* @param ffmpeg_path
* 插件所在路径
* @param imgsavepath
* 图片保存路径
* @return
*/
public static boolean processImg(String veido_path, String ffmpeg_path,String imgsavepath) {
File file = new File(veido_path);
if (!file.exists()) {
System.err.println("路径[" + veido_path + "]对应的视频文件不存在!");
return false;
}
List<String> commands = new ArrayList<String>();
commands.add(ffmpeg_path);
commands.add("-i");
commands.add(veido_path);
commands.add("-y");
commands.add("-f");
commands.add("image2");
commands.add("-ss");
if(Common.getVideoSecond(veido_path)>8)
commands.add("8");// 这个参数是设置截取视频多少秒时的画面
else
commands.add("1");// 这个参数是设置截取视频多少秒时的画面
commands.add("-s");
commands.add("400x300");
commands.add(imgsavepath);
try {
ProcessBuilder builder = new ProcessBuilder();
builder.command(commands);
builder.redirectErrorStream(true);
System.out.println("视频截图开始...");
Process process = builder.start();
InputStream in =process.getInputStream();
byte[] re = new byte[1024];
System.out.print("正在进行截图,请稍候");
while (in.read(re) != -1) {
System.out.print(".");
}
System.out.println("");
if(in!=null)
in.close();
System.out.println("视频截图完成...");
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
浙公网安备 33010602011771号