去除文件名中的空格及视频截图的方法
- 格式:doc
- 大小:28.00 KB
- 文档页数:2
将文件名中的空格””替换成”_”,这样视频文件才可以被截图:
f.renameTo(new File(f.getPath().replaceAll("\\s", "_")));
其中f为要重命名的文件。
视频截图的实现:
1、在网上下载了ffmpeg解码器,主要包含三个文件:ffmpeg.exe,ffplay.exe,
pthreadGC2.dll
2、创建批处理文件shot.bat,内容为:
@echo off
D:\hm\ffmpeg\ffmpeg.exe -i %1 -ss 10 -vframes 1 -r 1 -ac 1 -ab 2 -s 1280*528 -f image2 %2 exit
其中第一行@echo off的作用是不弹出dos命令行,%1和%2是将来在java调用中要传递过来的参数,10是截取10s的那一帧图像,1280*528是截取的图像的分辨率
3、在网上下载了一个隐藏运行批处理命令的可执行文件HIDECMD.EXE,这样在java中执行
批处理的时候就不会弹出黑色对话框了。
4、在java中创建一个工程,在工程中创建一个类,源程序如下:
package shot;
import java.io.File;
import java.io.IOException;
public class FileName {
public static void main(String[] args) {
File file = new File("D:\\resource\\movie");//此处为要截图的文件夹绝对路径
File[] files = file.listFiles();
String[] names = file.list();
String videoRealPath;
String imageRealPath;
for (File f : files) {
f.renameTo(new File(f.getPath().replaceAll("\\s", "_")));
}
for (String string : names) {
if (string.matches(".+\\.wmv")) {
videoRealPath = "D:\\resource\\movie\\" + string;
imageRealPath = "D:\\resource\\jpg\\"
+ string.substring(0, string.length() - 4) + ".jpg";
try {
Runtime.getRuntime().exec(
"D:\\hm\\ffmpeg\\HIDECMD.EXE D:\\hm\\ffmpeg\\shot.bat "
+ videoRealPath + " " + imageRealPath);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
核心部分是红色的代码,通过Runtime.getRuntime().exec()调用批处理文件,还可以将D:\\hm\\ffmpeg\\HIDECMD.EXE替换成cmd \c start ,但这样会弹出黑色对话框。