2

私の質問は、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

コンソールでコマンドをまったく同じ方法で実行すると、問題なく動作します。「My Media」フォルダの名前を「MyMedia」に変更すると、Java 側の問題は解決しますが、私にとっては使用可能な解決策ではありません。

入力パスからのスペースを制限せずにこれを修正するにはどうすればよいですか?

4

1 に答える 1

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\"");
于 2010-05-27T19:26:43.610 に答える