springboot调用ffmpeg完成有音频的视频与背景音乐合并

做毕设开始接触的ffmpeg,跟这mooc一步步学的,但是发现当我给有音频的视频和并新音频的时候出现了错误,从网上找了找,现在可以实现:

/**
     * @Description: 视频与背景音乐合并
     * 使用CMD命令:ffmpeg -i video.mp4 -i audio.wav -c:v copy -c:a aac -strict experimental
     * -map 0:v:0 -map 1:a:0 -t 10 output.mp4
     */



public void mergeVideoBgm(String bgmInputPath, String videoInputPath,  String videoOutputPath) throws Exception {
        List<String> command = new ArrayList<>();
        command.add(ffmpegExe);
        command.add("-i");
        command.add(videoInputPath);
        command.add("-i");
        command.add(bgmInputPath);
        command.add("-c:v");
        command.add("copy");
        command.add("-c:a");
        command.add("aac");
        command.add("-strict");
        command.add("experimental");
        command.add("-map");
        command.add("0:v:0");
        command.add("-map");
        command.add("1:a:0");
        command.add("-t");
        command.add("10");
        command.add(videoOutputPath);
        startProcess(command);
    }

video.MP4是你要合并的视频文件名,audio.wav是音频文件名,当然mp3格式的也可以,output.mp4是合并后的新文件的名字。其中 -t 10 是我自己设置的意思是合成一个长度为10秒的视频。 -i 我给忘了是啥意思了,不过得加上,这个文件合成后,会把原来视频里的音频替换成你设置的音频。

用之前可以试试在ffmpeg根目录bin下,执行cmd命令。输入这个命令,他会在你的根目录下生成新文件。

经验分享 程序员 微信小程序 职场和发展