我在windows机器上使用FFMPEG库文件将媒体文件从一种格式转换成另一种格式,所以我尝试通过java调用FFMPEG windows命令。它是通过在普通java程序中调用Process p = Runtime.getRuntime().exec("ffmpeg -i " + xxx.mp4 + " " + yyy.wav + "");
来工作的。但是当我在TOMCAT服务器中启动我的项目时,它抛出了像java.io.IOException: cannot run program : "ffmpeg" CreateProcess error=2, the system cannot find the file specified
这样的异常。我在下面附上了我的代码..
String sVideo = "C:\\Users\\Administrator\\Desktop\\voice.amr";
String dVideo2 = "C:\\Users\\Administrator\\Desktop\\sVideo.wav";
try {
Process p = Runtime.getRuntime().exec("ffmpeg -i " + sVideo + " " + dVideo2 + "");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
上面的代码可以工作,当单独运行这个类文件时,但是当我在我的项目中使用这个代码时,当我在TOMCAT服务器中运行我的项目时,它抛出异常。提前谢谢。
发布于 2016-05-06 19:49:56
您可以使用ProcessBuilder
创建进程,其中包含用于运行程序的路径文件夹。
String folder = "C:\\Users\\Administrator\\Desktop";
String[] cmdarray = new Sring[]{"ffmpeg -i","voice.amr", "sVideo.wav"};
ProcessBuilder processBuilder = new ProcessBuilder( cmdarray );
processBuilder.directory(new File(folder));
Process process = processBuilder.start();
int exitCode = -1;
boolean finished = false;
while ( !finished ) {
exitCode = process.waitFor();
finished = true;
}
如果需要,cmdarray
将拥有您的可执行文件和参数。
https://stackoverflow.com/questions/37069863
复制相似问题