FFmpeg简单尝试!

784 阅读1分钟

FFmpeg可以和SpringBoot集成,用于在SpringBoot应用中进行音视频处理。下面简单介绍一下如何在SpringBoot中使用FFmpeg。

  1. 添加FFmpeg依赖
  2. SpringBoot项目的pom.xml文件中添加FFmpeg的依赖,可以使用官方提供的Java API,也可以使用jaffree或ffmpeg-cli-wrapper等第三方库。
  3. 集成到SpringBoot中

将音视频处理代码集成到SpringBoot应用中,可以使用SpringBoot的注解和配置来管理和调用音视频处理代码。 @RestController public class VideoController {

@PostMapping("/convert")
public ResponseEntity<?> convertVideo(@RequestParam("input") String input, @RequestParam("output") String output) {
    FFmpeg ffmpeg = new FFmpeg("/usr/local/bin/ffmpeg");
    FFprobe ffprobe = new FFprobe("/usr/local/bin/ffprobe");

    FFmpegBuilder builder = new FFmpegBuilder()
        .setInput(input)
        .addOutput(output)
        .setVideoCodec("libx264")
        .setAudioCodec("aac")
        .done();

    FFmpegExecutor executor = new FFmpegExecutor(ffmpeg, ffprobe);
    executor.createJob(builder).run();

    return ResponseEntity.ok().build();
}

}

常见的FFmpeg 命令

  1. 视频转码:
ffmpeg -i input.mp4 -c:v libx264 -c:a aac output.mp4
  1. 视频剪辑:
ffmpeg -i input.mp4 -ss 00:00:10 -t 00:00:30 -c copy output.mp4
  1. 视频截图:
ffmpeg -i input.mp4 -ss 00:00:10 -vframes 1 output.jpg
  1. 视频合并:
ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex "[0:v:0][0:a:0][1:v:0][1:a:0]concat=n=2:v=1:a=1[v][a]" -map "[v]" -map "[a]" output.mp4
  1. 视频加水印:
ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=10:10" output.mp4
  1. 视频加字幕:
ffmpeg -i input.mp4 -vf subtitles=subtitle.srt output.mp4
  1. 视频转GIF图:
ffmpeg -i input.mp4 -vf "scale=320:-1,fps=10,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" output.gif

以上命令只是FFmpeg命令的冰山一角,FFmpeg支持的功能非常丰富