使用ffmpeg库在android中合并.m4a文件[重复]

Posted

技术标签:

【中文标题】使用ffmpeg库在android中合并.m4a文件[重复]【英文标题】:Merge .m4a files in android using ffmpeg library [duplicate] 【发布时间】:2014-02-13 19:53:59 【问题描述】:

我有几个 M4A(声音)文件。我想合并成一个声音文件。这可以在android中使用ffmpeg库吗?

我试过这个方法。

public void myFunctionMergeAudioFiles(ShellCallback sc,List<String> mListFiles, String outPath) throws IOException, InterruptedException
    

        ArrayList<String> cmd = new ArrayList<String>();
        cmd = new ArrayList<String>();
        cmd.add(ffmpegBin);
        cmd.add("f");
        cmd.add("concat");
        cmd.add("-i");
        for(int i=0;i<mListFiles.size();i++)
            cmd.add(new File(mListFiles.get(i)).getCanonicalPath());
        
        cmd.add("-c");
        cmd.add("-acodec");
        cmd.add("aac");
        cmd.add("copy");
        File fileOut = new File(outPath);
        cmd.add(fileOut.getCanonicalPath());
        execFFMPEG(cmd, sc);
    

我的日志:-

01-23 15:32:17.841: D/FFMPEG(12678): /data/app-lib/com.apps.messagingapp-1/libffmpeg.so f concat -i /storage/emulated/0/MGOApp/Temp/Recording #1_0.m4a /storage/emulated/0/MGOApp/Temp/Recording #1_1.m4a /storage/emulated/0/MGOApp/Temp/Recording #1_2.m4a -c -acodec aac copy /storage/emulated/0/MGOApp/Recording #1.m4a 

但我没有收到任何错误。 提前致谢。

【问题讨论】:

你有解决办法吗? 是的,我已经使用 ffmpeg 完成了,另一个将图像合并到音频的示例是 ***.com/questions/20463719/… 我发布了一个答案***.com/questions/20463719/… 【参考方案1】:

我相信您必须创建一个文本文件并将其用作您的输入。文本文件需要如下所示:

file 'file1.m4a'
file 'file2.m4a'

然后运行下面的命令行应该是这样的:

ffmpeg -f concat -i "Path\To\MyList.txt" -c copy concatOutput.m4a

这对我有用。 您应该能够在代码中动态创建列表文本文件,并在运行 FFMPEG 命令行后将其删除。

更多信息guide

【讨论】:

感谢@AJ29 的回复,我正在使用另一个 .m4a 文件。

以上是关于使用ffmpeg库在android中合并.m4a文件[重复]的主要内容,如果未能解决你的问题,请参考以下文章

FFmpeg,如何将封面艺术(图像)嵌入到 .m4a

是否可以在不重新编码的情况下将立体声合并/缩混为单声道(m4a 或 opus)

如何在android中以编程方式将音频.mp3转换为.m4a

无法使用 ffmpeg 将 .mp3 转换为 .m4a [关闭]

将 RAW AAC 打包到 m4a 容器中?

为啥 FFMPEG 错误地将 .M4A 猜测为 WAV pcm_s16le 文件?