ffmep是一款多媒体文件转换的命令行工具,有多种参数可以配置。现给出简单示例:
注意用的是pro.getErrorStream(),如果使用pro.getInputStream会阻塞ffmpeg的转换,具体原因不很明了,好像是getInputStream()会溢满java缓冲区,没有及时清除。
String command = "C:\\ffmpeg\\ffmpeg.exe -y -i " + sourcePath
+ " -ar 22050 " + destPath;
Process pro = null;
try {
pro = Runtime.getRuntime().exec(command);
BufferedReader buffered = new BufferedReader(new InputStreamReader(pro.getErrorStream()));
while (buffered.readLine() != null);
} catch (Exception e) {
e.printStackTrace();
}catch (Exception e) {
pro.destroy();
e.printStackTrace();
}
注意用的是pro.getErrorStream(),如果使用pro.getInputStream会阻塞ffmpeg的转换,具体原因不很明了,好像是getInputStream()会溢满java缓冲区,没有及时清除。