public static String ffmpegImg2video(String imagePath,String audioPath,String outputPath) {
try {
ProcessBuilder processBuilder = new ProcessBuilder("ffmpeg", "-y", "-loop", "1", "-i", imagePath, "-i", audioPath, "-c:v", "libx264", "-t", getAudioDuration(audioPath).toString(), "-pix_fmt", "yuv420p", "-vf", "fps=30", "-shortest", outputPath);
processBuilder.redirectErrorStream(true);
Process process = processBuilder.start();
// 读取FFmpeg的输出信息
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
int exitCode = process.waitFor();
System.out.println("FFmpeg进程已退出,退出码:" + exitCode);
System.out.println("音频和图片已合成为视频:" + outputPath);
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
return outputPath;
}