“靠人不如靠己”,永恒不变的真理呵呵!
java执行ffmpeg截图时遇到很多问题,在论坛上咨询,帖子被评为新手帖,十分郁闷,气愤之下决心一定要自己解决!终于让我搞定,在此备忘!
首先,大家知道java执行外部命令很简单,语句如下:[code]Runtime.getRuntime().exec()[/code]这个地球人都知道,但遇到具体问题是要具体分析!ffmpeg是采用命令行的方式进行编译工作,所以不能直接执行,必须要把命令写在一个批处理文件ffmpeg.bat里,内容如下:[code]ffmpeg.exe -i %1 -ss 3 -vframes 1 -r 1 -ac 1 -ab 2 -s 160*120 -f image2 %2[/code]
%1:接收的参数一
%2:接收的参考二
然后如下:[code]Runtime.getRuntime().exec("cmd /c start C:\\ffmpeg.bat " + videoRealPath + " " + imageRealPath)[/code]由于Runtime.getRuntime().exec不能直接执行批处理文件,所以要加上"cmd /c start ",至此截图成功了!
java执行ffmpeg截图时遇到很多问题,在论坛上咨询,帖子被评为新手帖,十分郁闷,气愤之下决心一定要自己解决!终于让我搞定,在此备忘!
首先,大家知道java执行外部命令很简单,语句如下:[code]Runtime.getRuntime().exec()[/code]这个地球人都知道,但遇到具体问题是要具体分析!ffmpeg是采用命令行的方式进行编译工作,所以不能直接执行,必须要把命令写在一个批处理文件ffmpeg.bat里,内容如下:[code]ffmpeg.exe -i %1 -ss 3 -vframes 1 -r 1 -ac 1 -ab 2 -s 160*120 -f image2 %2[/code]
%1:接收的参数一
%2:接收的参考二
然后如下:[code]Runtime.getRuntime().exec("cmd /c start C:\\ffmpeg.bat " + videoRealPath + " " + imageRealPath)[/code]由于Runtime.getRuntime().exec不能直接执行批处理文件,所以要加上"cmd /c start ",至此截图成功了!