溫馨提示×

java怎么調(diào)用ffmpeg命令

小億
248
2023-10-12 06:57:36
欄目: 編程語言

在Java中調(diào)用FFmpeg命令可以使用Runtime.getRuntime().exec(command)方法,其中command是要執(zhí)行的FFmpeg命令。

下面是一個示例代碼,演示如何使用Java調(diào)用FFmpeg命令來進(jìn)行視頻轉(zhuǎn)碼:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class FFmpegExample {
public static void main(String[] args) {
String ffmpegCommand = "ffmpeg -i input.mp4 -c:v libx264 -c:a aac output.mp4";
try {
Process process = Runtime.getRuntime().exec(ffmpegCommand);
// 獲取進(jìn)程的輸出流
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
// 等待FFmpeg命令執(zhí)行完成
int exitCode = process.waitFor();
if (exitCode == 0) {
System.out.println("視頻轉(zhuǎn)碼成功!");
} else {
System.out.println("視頻轉(zhuǎn)碼失??!");
}
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}

在上面的示例代碼中,ffmpegCommand是要執(zhí)行的FFmpeg命令,input.mp4是要轉(zhuǎn)碼的視頻文件,output.mp4是轉(zhuǎn)碼后的輸出文件。你可以根據(jù)自己的需求修改這些參數(shù)。

注意:在調(diào)用exec()方法時,需要處理并讀取進(jìn)程的輸出流,否則可能會導(dǎo)致進(jìn)程阻塞。在示例代碼中,我們使用BufferedReader來讀取進(jìn)程的輸出,并將其打印到控制臺。

0