Java调用FFmpeg进行截图

/**
	 * 视频截图
	 * @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"   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值