ffmpeg配了环境变量,在cmd中可以正常使用,Java使用processbuilder调用cmd命令就报错无法执行,
public void test3() throws Exception {
ProcessBuilder builder = new ProcessBuilder("ffmpeg -i E:\\football.mp4");
builder.redirectErrorStream(true);
try {
Process process = builder.start();
final StringBuilder stringBuilder = new StringBuilder();
final InputStream inputStream = process.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream,"GBK"));
String line;
int i = 1;
try {
while ((line = reader.readLine()) != null) {
System.out.println("读取第"+ i++ +"行:"+line);
stringBuilder.append(line);
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
} catch (Exception e) {
throw new RuntimeException("ffmpeg执行异常" + e.getMessage());
}
}
报错信息
java.lang.RuntimeException: ffmpeg执行异常Cannot run program "ffmpeg -i E:\football.mp4": CreateProcess error=2, 系统找不到指定的文件。
文件位置是对的,也是存在的 同样的命令 cmd直接执行时可以的
文件权限和ffmpeg文件夹的权限也修改过:
D:\ffmpeg /T /E /C /G everyone:F
到底是为什么啊?