Java FFmpeg没有输出

时间:2018-12-31 15:48:14

标签: java ffmpeg processbuilder

我遇到了问题。我想使用ffmpeg转换视频,但没有输出

public void convert(String inputFile, String outputFile, String ... optionalParams) {
    ProcessBuilder processBuilder = new ProcessBuilder("ffmpeg", "-i", "\"" + inputFile.trim() +"\"", "\""+ outputFile.trim() + "\"");
    DownloadRecord downloadRecord = table.getItems().get(0);
    downloadRecord.setStatus("Downloading");
       // Try to execute process
       try {
           // Set the working directory
           processBuilder.directory(new File(workingDirectory));
           //Start the process
           Process process = processBuilder.start();

           // Read the output from cmd
           BufferedReader r = new BufferedReader(new InputStreamReader(process.getInputStream()));
           BufferedReader ra = new BufferedReader(new InputStreamReader(process.getErrorStream()));

           String line;
           String errline;
           while ((line = r.readLine()) != null) {
                System.out.println(line);
           }

           while ((errline = ra.readLine()) != null) {
                System.out.println(errline);
           }
           process.waitFor();
           System.out.println("the end");
       } catch(IOException | InterruptedException e) {
           System.out.println(e.toString());
       }
}

我一直在搜索stackoverflow并找到一些解决方案,但都没有用。到目前为止我尝试过并发现的内容

  • 无输出或错误输出
  • 我试图从ProcessBuilder中删除反斜杠,它 也没有输出
  • 我试图让程序运行,但从未完成
  • 我尝试使用ffmpeg的完整路径,未做任何更改
  • 我尝试播放视频,没有错误
  • 我正在使用 Netbeans IDE,所以我尝试清理并重建项目,没有更改
  • 过程也永远不会完成

我想要一个输出。有人知道我在这里做错了吗?

1 个答案:

答案 0 :(得分:0)

我通过重新安装ffmpeg修复了它。刚去ffmpeg网站下载了最新版本,替换了文件夹中的文件即可使用

编辑: 由于某些原因,它仅适用于少于2分钟的文件,而超过2分钟的文件的行为如下: 我开始转换,直到程序运行它才会完全转换。我退出程序后,它将完成。这是奇怪的行为。