Process Builder将不接受ffmpeg参数 [英] Process Builder won't accept ffmpeg arguments

查看:337
本文介绍了Process Builder将不接受ffmpeg参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆