使用java throws执行ffmpeg无效的参数

时间:2018-01-25 04:06:58

标签: java ffmpeg

我能够在linux命令行中执行ffmpeg,如下所示:

./ffmpeg -i input.mp3 -af 'volume=2' output.mp3

但是当我尝试使用Java执行相同的ffmpeg可执行文件时,就像这样:

String ffmpegCommand = "%s -i %s -af 'volume=2' %s";
String command = String.format(ffmpegCommand,"ffmpeg","input.mp3", "output.mp3");
Runtime.getRuntime().exec(command);

我收到以下错误:

No such filter: 'volume=2'
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument

这两个命令对我来说似乎不一样,为什么java代码exec失败?

更新: 在删除volume=2周围的单引号后,它工作正常。最终的Java代码如下所示:

String ffmpegCommand = "%s -i %s -af volume=2 %s";
String command = String.format(ffmpegCommand,"ffmpeg","input.mp3", "output.mp3");
Runtime.getRuntime().exec(command);

0 个答案:

没有答案