我的问题是关于apache commons中的org.apache.commons.exec.DefaultExecutor.execute(CommandLine命令)方法。
这是执行ffmpeg的代码位:
command = FFMPEG_DIR + "ffmpeg -i \"" + file.getAbsolutePath() + "\"";
DefaultExecutor executor = new DefaultExecutor();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PumpStreamHandler streamHandler = new PumpStreamHandler(baos);
executor.setStreamHandler(streamHandler);
CommandLine commandLine = CommandLine.parse(command);
executor.execute(commandLine);
当我执行命令行工具e.c.像这样来自Java的ffmpeg:
/path_to_ffmpeg/ffmpeg -i "/My Media/Video/Day2/VIDEO.MOV"
ffmpeg的结果是它找不到为输入
指定的文件"/My Media/Video/Day2/VIDEO.MOV": No such file or directory
如果我在控制台中执行命令的方式完全相同,没有任何问题。 将“我的媒体”文件夹重命名为“MyMedia”可以解决Java方面的问题,但对我来说这不是一个有用的解决方案。
如何解决这个问题而不必限制输入路径中的空格?
答案 0 :(得分:1)
http://commons.apache.org/exec/tutorial.html上的示例表明您执行以下操作:
DefaultExecutor de = new DefaultExecutor();
de.execute(CommandLine.parse("/path_to_ffmpeg/ffmpeg -i \"/My Media/Video/Day2/VIDEO.MOV\"");