合并两个.m4a文件或将.wav文件转换为m4a

时间:2011-11-07 09:45:15

标签: java android ffmpeg mencoder mpeg-4

我正在寻找一种在mpeg-4中录制的方法,能够暂停和恢复,但似乎没有一个。所以我决定以原始wave格式录制并转换为.m4a。有没有办法可以在android中将.wav文件转换为.m4a。我已经四处寻找mencoder端口的android但没有找到,有一些帖子关于将ffmpeg移植到linux上的android但是我不太清楚如何在android中使用它合并两个.m4a文件或将.wav文件转换为.m4a

2 个答案:

答案 0 :(得分:4)

通过“合并”音频文件可能有两种可能的含义,以及使用ffmpeg进行处理的两种不同方法:

将两个单独的音轨放入同一个文件

喜欢在DVD上有正常的音轨,而另一个音轨如评论或配音语言。要使用ffmpeg和两个m4a文件执行此操作,请使用命令ffmpeg -i in-1.m4a -acodec copy out.m4a -i in-2.m4a -acodec copy -newaudio。选项的顺序很重要,所以不要乱用它。

连接两个音频文件

在第一个文件之后立即播放第二个文件。最简单的方法是使用专为音频操作设计的程序,如SoX。似乎有a recent but unstable Android port of SoX

如果你想严格按照ffmpeg进行连接,那么你可以执行以下操作:

  1. ffmpeg -i in-1.m4a -f s16le in-1.raw
    这将音频文件输出到原始PCM。您需要注意采样率和通道数,因为此信息不会存储在原始PCM文件中,您将在以后需要它。 ffmpeg将在重新编码时显示音频流信息。它看起来像Audio: aac, 44100 Hz, stereo, s16, 63 kb/s,这意味着您的采样率 44100 ,您的通道数 2 (立体声)。大多数情况下,您将处理22050,44100或48000的采样率;和1(“单声道”),2(“立体声”)或6(“5.1”)声道。

  2. ffmpeg -i in-2.m4a -f s16le in-1.raw
    现在将第二个文件解码为原始PCM。

  3. ffmpeg -f s16le -ar 44100 -ac 2 -i 'concat:in-1.raw|in-2.raw' -acodec libfaac out.m4a再次,选项顺序非常重要。根据您的输入更改采样率(-ar)和频道(-ac)选项。

答案 1 :(得分:1)

假设您使用相关格式和编解码器构建ffmpeg,将wav转换为m4a非常简单:

ffmpeg -i in.wav out.m4a

如果你正在做音频工作,你可能会更幸运SoX