【问题标题】:how to run ffmpeg command(windows) in java如何在java中运行ffmpeg命令(windows)
【发布时间】:2017-10-29 12:43:53
【问题描述】:

我在命令提示符下成功执行了以下 FFMPEG 终端命令。但是我无法在我的 java 程序中执行这个命令。我可以在我的 java 程序中执行所有其他没有双引号的 ffmpeg 命令。这里我只混淆了双引号(“...”)。

ffmpeg -i "concat:C:\\journalism\\videos\\vid1.ts|C:\\journalism\\videos\\vid2.ts" -c copy C:\\journalism\\videos\\output.mp4

我可以在命令提示符下成功执行上述操作。但我在我的 java 代码中尝试如下。

Runtime.getRuntime().exec("C:\\ffmpeg\\bin\\ffmpeg -i 'concat:C:\\journalism\\videos\\vid1.ts|C:\\journalism\\videos\\vid2.ts' -c copy C:\\journalism\\videos\\output.mp4");

即使我尝试将双引号(“...”)替换为单引号('...')。但没有成功。

谁能帮我解决这个问题...

提前谢谢...

【问题讨论】:

    标签: java ffmpeg


    【解决方案1】:

    我自己找到了答案。我没有使用字符串对象,而是使用下面的字符串数组,然后命令成功执行。

    String[] cmd={"C:\\ffmpeg\\bin\\ffmpeg","-i", "concat:C:\\journalism\\videos\\vid1.ts|C:\\journalism\\videos\\vid2.ts", "-c", "copy", "C:\\journalism\\videos\\output.mp4"};
    Runtime.getRuntime().exec(cmd);
    

    【讨论】:

      【解决方案2】:

      我的程序正在运行,我只是使用如下。希望对你有帮助:

      String cmd = "ffmpeg -i http://117.103.224.78/videoinput/Video1.mp4 -s 1920x1080 -c:复制 D:\\tmp\\Video2.mp4";

      进程 p = Runtime.getRuntime().exec(cmd);

      【讨论】:

        【解决方案3】:

        我也想这样做,这段代码成功了。

        String exeLocation = "\"C:\\Program Files\\ffmpeg\\bin\\ffmpeg\"";
        String extractFileName = "test.mp4";
        String extractFullPath = "C:\\ac3" + "\\" + extractFileName;
        String dest = "C:\\\\ac3\\\\output.mp4";
        
        String cmd = exeLocation + " -i " + extractFullPath + " -c copy " + dest ;
        Runtime.getRuntime().exec(cmd);
        

        【讨论】:

          猜你喜欢
          • 2011-04-14
          • 2020-11-23
          • 2015-05-08
          • 2012-11-09
          • 1970-01-01
          • 2012-09-08
          • 2020-06-08
          • 2017-01-30
          相关资源
          最近更新 更多