我建设的ffmpeg()一个简单的用户界面使用EXEC推出ffmpeg.exe与参数后卡住。它适用于OS X,但在Windows 7,8几秒钟后ffmpeg的过程自动暂停,当我杀死父亲过程只恢复。 (也ddlhost.exe创建) Ffmpeg.exe从CMD成功转换相同的视频。Java运行时的exec()获得,而
在互联网上搜索,我发现这个answer但我有运行未使用的输入和错误流一个简单的测试程序同样的问题。
这里是一个有主要的一个同样的问题:测试程序代码:}
public class Main {
static String param_ffmpeg_1 = "./data/ffmpeg.exe";
static String param_ffmpeg_2 = "-i";
static String in = "./data/source.mov";
static String out = "./data/out.flv";
static Process p;
public static void main(String[] args) {
/*File f = new File(out);
if (f.exists()){
f.delete();
}*/
Runtime rt = Runtime.getRuntime() ;
//String cmd1 = param_ffmpeg_1 + param_ffmpeg_2 + in_path + param_ffmpeg_3 + out_path ;
System.out.println(in);
System.out.println(out);
String[] cmd1 = new String[] { param_ffmpeg_1, param_ffmpeg_2, in, "-ar", "44100", "-vb", "2500k", "-s", "882x496", "-f", "flv", out};
try {
p = rt.exec(cmd1);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int r = 123456;
try {
r = p.waitFor();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(r);
}