是否可以在Java中自动执行ffmpeg-normalize?

时间:2019-04-06 21:04:34

标签: java python ffmpeg

我需要使用ffmpeg-normalize(https://github.com/slhck/ffmpeg-normalize)来正确规范我的Java程序中的音频文件,但是ffmpeg-normalize需要手动安装和使用命令。

我认为我可以使用ProcessBuilder在Java中将其自动化,但是事实证明这是不可能的。

ffmpeg-normalize用python编写,因此我尝试了与在Java中运行python命令相关的每个stackoverflow问题。它们都不起作用,似乎Windows只是拒绝让Java通常运行命令。

我也将python添加到了环境变量中。没有骰子。 Windows不断告诉我它无法识别pythonpypip为有效的内部或外部命令。

这是我的最终代码,在此之前,我尝试了所有其他解决方案,包括Runtime.exe(使用“ cmd / c start”以及所有其他衍生版本)。

我的最后一次尝试是从java cmd处理器运行.bat文件,然后让.bat完成其余工作,但不仅是Windows,而且失败。

直接在cmd.exe的cmd中运行pip(我的意思是在Java程序之外),它可以正常运行并向我显示pip的帮助菜单。从Java应用程序打开cmd时,Windows拒绝一起确认python的存在,如下图所示。

.


                Process process = Runtime.getRuntime().exec("cmd /c start " + installerBat.getAbsolutePath(), null, ffNormExtractDir);
                StreamGobbler errorGobbler = new StreamGobbler(process.getErrorStream());
                StreamGobbler outputGobbler = new StreamGobbler(process.getInputStream());
                errorGobbler.start();
                outputGobbler.start();
                try {
                    process.waitFor();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }

我希望Java出生的cmd能够立即且完美地运行命令,但它只是拒绝运行它们。

那么,使ffmpeg-normalize轻而易举地安装到用户的最佳方法是什么?

0 个答案:

没有答案