我的问题是关于 apache commons 中的 org.apache.commons.exec.DefaultExecutor.execute(CommandLine command) 方法。
这是执行 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);
当我像这样从 Java 执行命令行工具 ec ffmpeg 时:
/path_to_ffmpeg/ffmpeg -i "/My Media/Video/Day2/VIDEO.MOV"
ffmpeg的结果是找不到输入指定的文件
"/My Media/Video/Day2/VIDEO.MOV": No such file or directory
如果我在控制台中以完全相同的方式执行命令,则它不会出现任何问题。将“我的媒体”文件夹重命名为“我的媒体”可以解决 Java 方面的问题,但对我来说这不是一个可用的解决方案。
如何在不必限制输入路径中的空格的情况下解决此问题?