import java.io.IOException;
import java.io.InputStream;
import java.util.List;
public class Ffmpeg {
public static void main(String[] args) {
//视频文件
String videoRealPath = "E:\\Eclipse2\\a.avi";
//截图的路径(输出路径)
String imageRealPath ="E:\\Eclipse2\\atest.jpg";
//方法一:调用批处理程序,调用批处理文件ffmpeg.bat转换视频格式
// try {
// //调用批处理文件
// Runtime.getRuntime().exec("cmd /c start C:\\Users\\Administrator\\Desktop\\test\\ffmpeg.bat " + videoRealPath + " " + imageRealPath);
// } catch (IOException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
//方法二:通过命令提示符来调用需要添加系统路径(Path),调用menconder转换视频各种
// commendF
// .add("cmd.exe /c mencoder E:\\Eclipse2\\test.flv -o e:\\Eclipse2\\test.avi
// -oac mp3lame -lameopts cbr:br=32
// -ovc x264 -x264encopts bitrate=440 -vf scale=448:-3");
//方法三:调用系统中的可执行程序调用ffmpeg 提取视屏缩略图
List commend = new java.util.ArrayList();
commend.add("E:\\Eclipse2\\Mplayer\\ffmpeg-git-4082198-win32-static\\bin\\ffmpeg.exe");
commend.add("-i");
commend.add(videoRealPath);
commend.add("-y");
commend.add("-f");
commend.add("image2");
commend.add("-ss");
commend.add("8");
commend.add("-t");
commend.add("0.001");
commend.add("-s");
commend.add("350*240");
commend.add(imageRealPath);
try {
ProcessBuilder builder = newProcessBuilder();
builder.command(commend);
builder.redirectErrorStream(true);
System.out.println("视频截图开始...");
// builder.start();
Process process = builder.start();
InputStream in =process.getInputStream();
byte[] re = new byte[1024];
System.out.print("正在进行截图,请稍候");
while (in.read(re) != -1) {
System.out.print(".");
}
System.out.println("");
in.close();
System.out.println("视频截图完成...");
} catch (Exception e) {
e.printStackTrace();
System.out.println("视频截图失败!");
}
}
}