如何在java中运行ffmpeg命令(windows)

时间:2017-05-29 09:03:59

标签: java ffmpeg

我在命令提示符下成功执行了以下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 个答案:

答案 0 :(得分:3)

我找到了自己的答案。我没有使用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);

答案 1 :(得分:1)

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

String cmd =“ffmpeg -i http://117.103.224.78/videoinput/Video1.mp4 -s 1920x1080 -c:副本D:\\ tmp \\ Video2.mp4”;

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

答案 2 :(得分: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);