java结合ffmpeg实现多个视频截图,按时长平均分割截取固定数量

本工具利用Java和FFmpeg实现对多个视频文件的批量截图功能,可根据视频时长平均分割,截取固定数量的图片,支持指定目录下所有视频的自动化处理。

java结合ffmpeg实现多个视频截图,按时长平均分割截取固定数量

本工具简单介绍
  • 先强调下,本工具可以直接上手使用

  • 本来ffmpeg就可以支持很多功能,比如视频截图,比如可以执行每隔多少秒截取一帧图片,但是本人没找到按时长平均分割截取固定数量的图片的功能,而且一次只能截取一个视频,不能截取指定的整个目录的所有视频,不够自动化,所以就有了这个工具。

  • 而本工具可以根据视频的长度来平均截取固定数量的图片,支持传递“源视频文件目录路径”、“输出目录路径”、“共截取图片个数”、“分割方式”等参数,后面有详细说明

  • 声明一下,本工具目前只在windows下可用,需要用在其他平台的童鞋可以自行改造。

使用方式
  • 首先需要先安装jdk1.8或以上版本,以及ffmpeg这个玩意,不会安装的自行百度哈,官网地址如下:

    http://www.ffmpeg.org/download.html.

  • 要使用本工具,安装好后需要添加环境变量 FFMPEG_HOME,就是ffmpeg的bin目录的绝对路径,目录带不带\都可以,并重启电脑(不重启电脑需要带一个“ffmpeg.exe所在目录”的参数)。

  • 将本文最后的源码保存为Vedios2Images.java文件,然后在cmd命令中执行以下命令,将其编译成Vedios2Images.class

javac -encoding UTF-8 Vedios2Images.java
  • 然后就可以使用Vedios2Images.class对多个视频进行截图了

  • 命令参数含义


命令格式 java VedioToImages [源视频文件路径] [目标目录路径] [截取图片个数] [ffmpeg.exe所在目录] [是否分目录存放截图]

以下参数中,参数1和参数2是必填参数。

参数1:源视频文件目录路径,此目录带不带\都可以,须填绝对路径。必传参数。

参数2:输出目录路径,此目录带不带\都可以,须填绝对路径。必传参数。

参数3:共截取图片个数。 可不传,不传默认为6。

参数4:ffmpeg.exe所在目录。可不传,不填自动从环境变量 FFMPEG_HOME 获取。
		注意:刚配置不重启电脑时java中获取不到,所以不想重启可暂时传入,此目录带不带\都可以,须填绝对路径。
		若不想重启又不想传此参数,可以将其安装(重命名后解压)到D:\tools_install\ffmpeg\bin 目录
		下(ffmpeg.exe在这个目录就行)。

参数5:表示是否将每个视频的截图分割为目录,不填不分割。值为s则将每个视频切分到以视频名命
名的目录中,否则直接放在输出目录中。始终为最后一个参数。


如 :
	java Vedios2Images D:\tmp\test D:\jietu 20 D:\tools_install\ffmpeg\bin s

	表示将D:\tmp\test目录下的所有视频截图,输出到D:\jietu目录下,每个视频的输出个数为20个,
	D:\tools_install\ffmpeg\bin 显式的指定了ffmpeg.exe所在目录,最后的s代表将每个视频的多个
	截图存放在以视频名命名的目录中。
	
	下面的命令也是正确的:
		java Vedios2Images D:\tmp\test D:\jietu
		
		java Vedios2Images D:\tmp\test D:\jietu  10
		
		java Vedios2Images D:\tmp\test D:\jietu s
	
		java Vedios2Images D:\tmp\test D:\jietu  10 s
	
效果展示
  • 命令指定out为输出目录,source为源目录
    在这里插入图片描述

  • source中有两个视频

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值