Android - 将 mp3 音频添加到 mp4 视频

Android - Add mp3 audio to mp4 video

我正在尝试将 MP3 音频文件混合到 MP4 视频中。 经过几个小时的搜索,我得出结论,我需要将 MP3 文件转换为 AAC 格式,以适合 MP4 容器。

Add audio to video in android

但是我找不到任何关于如何将 MP3 文件转换为 AAC 格式的文档。 那么您对我如何将 MP3 音频转换为 AAC 音频有什么建议吗?

此外,我需要在最终视频中的特定时间插入多个音频。

您可以尝试使用 mp4parser 对 mp4 进行一些混合,有些人(从 github repo "issues" 部分中可以看出)正在使用它来混合mp3 和 mp4。

您的另一个选择是使用 FFmpeg,您可以自行编译或使用预制的东西,我用过 this。 它本身的库有点笨重,而且您可能需要进行一些尝试才能正确使用 FFmpeg 命令以获得最佳质量和复用速度。

看起来像这样:

    try {
       FFmpeg ffmpeg = FFmpeg.getInstance(this);
       String cmd = "-i " + videoFilePath + " -i " + audioFilePath + " -shortest -threads 0 -preset ultrafast -strict -2 " + outputFilePath
       ffmpeg.execute(cmd, mergeListener);
    } catch (FFmpegCommandAlreadyRunningException e) {
       e.printStackTrace();
    }

还有一个听众:

ExecuteBinaryResponseHandler mergeListener = new ExecuteBinaryResponseHandler() {
        @Override
        public void onStart() {
            //started
        }

        @Override
        public void onFailure(String message) {
            //failed
        }

        @Override
        public void onFinish() {
           File output = new File(outputFilePath);
           //Do whatever with your muxed file
        }
    };