2015-10-05 75 views
0

我有一些20k + mp3,我試圖提取它們的縮略圖並將它們保存爲jpeg文件在磁盤上。我正在使用ffmpeg來完成工作。爲了加快速度,我創建了一個運行五個線程並同時處理五個圖像的Java應用程序。ffmpeg在執行多個實例時無限期掛起

問題是,有時ffmpeg掛起。我檢查了htop,我看到五個ffmpeg在沒有CPU使用情況下運行,他們只是坐在那裏什麼都不做。

但是,如果我選擇使用單線程的事情工作正常。這是我如何運行ffmpeg來提取音頻縮略圖:

private void vGetAudioFrames(String input) 
{ 
    try 
    { 
     ProcessBuilder procBuilder = new ProcessBuilder("ffmpeg", "-i" , input, input + ".jpg"); 
     Process process = procBuilder.start(); 
     process.waitFor(); 
    } 
    catch (IOException e) 
    { 

    } 
} 

我不知道我在做什麼錯。調用過於簡單,我不確定是否需要額外的參數才能使其正常工作。

回答

1

對不起,它似乎是它掛起時,輸出文件已存在。我的隊列檢索中有一個流程導致同一個文件在同一個週期內被拉兩次。

+0

考慮添加'-n'全局選項(在'-i'之前)。 – LordNeckbeard