package com.ard.work.utils;
|
|
import java.io.BufferedReader;
|
import java.io.File;
|
import java.io.InputStreamReader;
|
|
public class FFmpegUtils {
|
|
public static void transcodeToMP4(String inputFilePath, String outputFilePath) {
|
try {
|
File outputFile = new File(outputFilePath);
|
if (outputFile.exists()) {
|
outputFile.delete();
|
}
|
|
ProcessBuilder processBuilder = new ProcessBuilder(
|
"ffmpeg", "-i", inputFilePath,
|
"-c:v", "libx264", "-profile:v", "baseline",
|
"-level", "3.0", "-c:a", "aac", "-strict", "experimental",
|
"-movflags", "faststart", outputFilePath
|
);
|
processBuilder.redirectErrorStream(true);
|
|
Process process = processBuilder.start();
|
// 捕获并打印 FFmpeg 的输出日志
|
try (BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()))) {
|
String line;
|
while ((line = reader.readLine()) != null) {
|
// System.out.println(line); // 打印 FFmpeg 输出
|
}
|
}
|
if (process.waitFor() != 0) {
|
throw new RuntimeException("ffmpeg 转码失败");
|
}
|
}
|
catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
}
|