您的位置:首页 > 编程语言 > Java开发

Java调用FFmpeg进行截图

2015-08-04 10:04 507 查看
/**
* 视频截图
* @param veido_path    视频路径
* @param ffmpeg_path	ffmpeg路径
* @param image_name	图片保存路径
* @param time			截图时间戳
* @return
*/
public static boolean processImg(String veido_path, String ffmpeg_path, String image_name, float time) {
File file = new File(veido_path);
if (!file.exists()) {
log.info("路径[" + veido_path + "]对应的视频文件不存在!");
return false;
}
List<String> commands = new java.util.ArrayList<String>();
commands.add(ffmpeg_path);
commands.add("-ss");//SS参数放在最开始截图速度最快
commands.add("\""+time+"\"");//这个参数是设置截取视频多少秒时的画面
commands.add("-i");
commands.add(veido_path);
commands.add("-y");
commands.add("-f");
commands.add("image2");
//		commands.add("-t");
//		commands.add("\""+z+"\"");
//		commands.add("-s");
//	commands.add("700x525");
commands.add(image_name+".jpg");
try {
ProcessBuilder builder = new ProcessBuilder();
builder.command(commands);
builder.start();
log.info(veido_path+",第 "+time+" 秒截取成功...");
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}

 参数介绍:

    -i  输入文件 "f:\\test.flv" 

    -f 表示输出文件格式

    -ss 表示相对于文件开始处的时间偏移值, 即从5秒出开始截图

    -s 表示截图的的大小,如果不指定,则为视频原始分辨率

    -vframes 表示截图的桢数

    -y 输出文件"f:\\test.jpg"   

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: