java创建FFmpeg进程以将文件编码转为 H.264 / H.265
时间: 2024-01-23 11:04:14 浏览: 84
以下是使用Java创建FFmpeg进程将文件编码为H.264 / H.265的示例代码:
```java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class FFmpegEncoder {
private static final String FFmpeg_PATH = "path/to/ffmpeg"; // FFmpeg的路径
private static final String INPUT_FILE_PATH = "path/to/input/file"; // 输入文件的路径
private static final String OUTPUT_FILE_PATH = "path/to/output/file"; // 输出文件的路径
private static final String CODEC = "libx264"; // 使用H.264编码器
// private static final String CODEC = "libx265"; // 使用H.265编码器
public static void main(String[] args) {
String command = FFmpeg_PATH + " -i " + INPUT_FILE_PATH + " -c:v " + CODEC + " " + OUTPUT_FILE_PATH;
Process process = null;
try {
process = Runtime.getRuntime().exec(command); // 创建FFmpeg进程
InputStream inputStream = process.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = reader.readLine()) != null) {
// 输出FFmpeg进程的输出信息
System.out.println(line);
}
int exitCode = process.waitFor(); // 等待FFmpeg进程完成
System.out.println("FFmpeg process exited with code " + exitCode);
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
if (process != null) {
process.destroy(); // 销毁FFmpeg进程
}
}
}
}
```
在上面的示例代码中,我们可以指定要使用的编码器,使用`libx264`表示使用H.264编码器,使用`libx265`表示使用H.265编码器。我们可以根据需要进行更改。在执行FFmpeg进程时,我们使用`Runtime.getRuntime().exec()`方法创建进程。然后,我们使用`process.getInputStream()`获取进程的输出流,并使用`BufferedReader`读取输出流中的内容。最后,我们使用`process.waitFor()`等待FFmpeg进程完成,并获取其退出代码。最后,我们使用`process.destroy()`销毁进程以释放资源。
注意:在上面的示例代码中,我们假设您已经正确安装了FFmpeg并将其添加到了系统的环境变量中。如果您的FFmpeg路径与示例代码中的路径不同,请相应地更改路径。
阅读全文