Process Builder将不接受ffmpeg参数 [英] Process Builder won't accept ffmpeg arguments
问题描述
我正在尝试使用Java ProcessBuilder打开一个进程(ffmpeg). 到目前为止,还不错,但是我真的无法将任何参数传递给该过程.
I'm trying to open a process (ffmpeg) using the Java ProcessBuilder. So far so good but I can't really pass any arguments to the process.
ProcessBuilder不会使用正确的参数.
The ProcessBuilder just won't use the right arguments.
到目前为止,这是我的代码:
Here's my code so far:
ProcessBuilder builder = new ProcessBuilder("ffmpeg/ffmpeg.exe", "-i " + this.inputFile.getAbsolutePath(), "-c:v libvpx", "-minrate " + iBitrate + "k", "-maxrate " + iBitrate + "k", "-b:v " + iBitrate + "k", "-c:a libvorbis", this.outputFile.getAbsolutePath());
我得到的样本输出:
Unrecognized option 'i D:\Noneatme\Dokumente\AAAAAAAAAAAA\day.mp4'.
Error splitting the argument list: Option not found
我从没说过"i"之类的话,我做错了什么吗?
I never said "i" or anything like that, am I doing something wrong?
推荐答案
在ProcessBuilder构造函数的第二个参数中删除-i
之后的空格,并将this.inputFile.getAbsolutePath()
作为ProcessBuilder构造函数的第三个参数.不要将其添加到"-i"
.本质上,确保每个用空格分隔的元素都是ProcessBuilder构造函数的自变量.
Remove the space after -i
in the 2nd parameter of the ProcessBuilder constructor, and make this.inputFile.getAbsolutePath()
the 3rd parameter to the ProcessBuilder constructor. Don't add it to "-i"
. Essentially, make sure each element separated by spaces are their own arguments to the ProcessBuilder constructor.
这篇关于Process Builder将不接受ffmpeg参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!