如何在Java中运行Windows下的FFmpeg命令

6

我在命令提示符中成功地执行了以下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");

我尝试使用单引号('...')替换双引号("..."),但没有成功。

请问有人能帮我解决这个问题吗?

先谢谢了。

3个回答

7

我为自己找到了答案。不是使用String对象,而是使用如下的String数组,然后命令成功执行了。

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:a copy D:\\tmp\\Video2.mp4";

Process p = Runtime.getRuntime().exec(cmd);


0

我也在尝试做同样的事情,这段代码解决了问题。

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);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接