java ffmpeg命令
时间: 2023-10-14 11:31:07 浏览: 152
Java中可以通过使用ProcessBuilder或Runtime类来调用ffmpeg命令。
下面是一个使用ProcessBuilder调用ffmpeg命令的示例:
```java
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class FFMPEGCommand {
public static void main(String[] args) throws IOException, InterruptedException {
List<String> command = new ArrayList<>();
command.add("ffmpeg");
command.add("-i");
command.add("input.mp4");
command.add("-c:v");
command.add("libx264");
command.add("-crf");
command.add("23");
command.add("-preset");
command.add("medium");
command.add("-c:a");
command.add("aac");
command.add("-b:a");
command.add("128k");
command.add("output.mp4");
ProcessBuilder pb = new ProcessBuilder(command);
pb.inheritIO();
Process process = pb.start();
process.waitFor();
}
}
```
上述代码中,我们创建了一个List类型的command列表,用于存储ffmpeg命令及其参数。然后,我们使用ProcessBuilder类创建一个新的进程,并将命令传递给该进程。最后,我们使用process.waitFor()方法等待该进程执行完毕。
你也可以使用Runtime类调用ffmpeg命令,例如:
```java
import java.io.IOException;
public class FFMPEGCommand {
public static void main(String[] args) throws IOException, InterruptedException {
String command = "ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k output.mp4";
Process process = Runtime.getRuntime().exec(command);
process.waitFor();
}
}
```
这里,我们直接将ffmpeg命令作为字符串传递给Runtime.getRuntime().exec()方法,然后使用process.waitFor()方法等待进程执行完毕。
阅读全文