我在命令提示符下成功执行了以下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");
即使我尝试用单引号('...')替换双引号(“...”)。但没有成功。
任何人都可以帮我解决这个问题...
提前致谢...
答案 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);