我一直在寻找一种可以暂停和恢复的mpeg-4录制方式,但似乎没有这样的方式。所以我决定用原始的wave格式录制并转换成.m4a格式。有没有办法可以在安卓系统中将.wav文件转换为.m4a。我到处寻找安卓的mencoder端口,但没有找到,有一些关于在linux上将ffmpeg移植到安卓的帖子,但我不太清楚如何在安卓中使用它来合并两个.m4a文件或将.wav文件转换为.m4a。
发布于 2011-11-08 22:06:15
“合并”音频文件有两种可能的意思,以及使用ffmpeg的两种不同方式:
将两个独立的音轨放入同一个文件中
就像在DVD上,有一个普通的音轨,和另一个音轨,如评论或配音语言。要对ffmpeg -i in-1.m4a -acodec copy out.m4a -i in-2.m4a -acodec copy -newaudio和两个m4a文件执行此操作,请使用命令ffmpeg。选项的顺序很重要,所以不要弄乱它。
连接两个音频文件
使第二个文件在第一个文件之后立即播放。最简单的方法是使用为音频操作而设计的程序,如SoX。看起来有a recent but unstable Android port of SoX。
如果您希望严格在ffmpeg中进行连接,则可以执行以下操作:
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")声道。
ffmpeg -i in-2.m4a -f s16le in-1.raw现在将第二个文件解码为原始PCM。
ffmpeg -f s16le -ar 44100 -ac 2 -i 'concat:in-1.raw|in-2.raw' -acodec libfaac out.m4a同样,选项的顺序非常重要。根据您的输入更改相应的采样率(-ar)和通道(-ac)选项。
发布于 2011-11-08 11:54:12
假设您使用相关的格式和编解码器构建m4a,那么将ffmpeg转换为ffmpeg非常简单:
ffmpeg -i in.wav out.m4a如果你在做音频工作,你可能会更幸运地使用SoX。
https://stackoverflow.com/questions/8034837
复制相似问题