2015-03-03 190 views
0

我想轉換1.rmvb與mencoder avi;mencoder:java.io.IOException:錯誤= 2,沒有這樣的文件或目錄

和 /應用/ tongweb02 /部署/模塊/ CMS-網/靜態/上傳/視頻/產地的文件夾/ 2015/03/03/ 和 /應用/ tongweb02 /部署/模塊/ CMS-網絡/靜態/上傳/視頻/ FLV/2015/03/03/ 已經退出,

Java代碼

String getter = null; 
String toAvi = "mencoder " 
     + originPath 
     + " -o " 
     + aviPath 
     + " -vf scale=320:240 -oac pcm -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=500"; 
try{ 
    ProcessBuilder builder = new ProcessBuilder(); 
    builder.command(toAvi); 
    builder.redirectErrorStream(true); 
    Process proc = builder.start(); 
    BufferedReader stdout = new BufferedReader( 
      new InputStreamReader(proc.getInputStream())); 
    String line; 
    while ((line = stdout.readLine()) != null) { 
     getter += line + ","; 
     if(getter != null) 
      System.out.println(line); 
    } 
    proc.waitFor(); 
    stdout.close(); 
} 
catch (Exception e) { 
    e.printStackTrace(); 
    return false; 
} 

它給了我以下錯誤:

[2015-03-03 15:23:37] [WARNING] [System.out] [java.io.IOException: Cannot run program "mencoder /app/tongweb02/deployment/modules/cms-web/static/upload/video/origin/2015/03/03/1.rmvb -o /app/tongweb02/deployment/modules/cms-web/static/upload/video/videoTemp/1425367417356.avi -vf scale=320:240 -oac pcm -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=500": java.io.IOException: error=2, No such file or directory] 

任何人都可以幫助我解決問題。

回答

0
String getter = null; 
       String toAvi = "mencoder " 
         + originPath 
         + " -o " 
         + aviPath 
         + " -vf scale=320:240 -oac pcm -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=500"; 
       try{ 
        Runtime rt = Runtime.getRuntime(); 
        Process proc = rt.exec(toAvi); 
        BufferedReader stdout = new BufferedReader( 
          new InputStreamReader(proc.getInputStream())); 
        String line; 
        while ((line = stdout.readLine()) != null) { 
         getter += line + ","; 
         if(getter != null) 
          System.out.println(line); 
        } 
        proc.waitFor(); 
        stdout.close(); 
       } 
       catch (Exception e) { 
        e.printStackTrace(); 
        return false; 
       } 
       return true;