我建設的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);
}