Мой вопрос касается метода org.apache.commons.exec.DefaultExecutor.execute (команда CommandLine) в общем доступе apache.
Это кодовый бит для выполнения 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);
Когда я запускаю инструмент командной строки, например ffmpeg с Java вот так:
/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, но для меня это непригодное решение.
Как я могу это исправить, не ограничивая пробелы во входном пути?