如何使用FFMPEG混合不同格式的声音文件?

时间:2011-04-19 10:06:38

标签: objective-c ios audio ffmpeg mixing

我需要通过iPad应用中的代码将不同类型的音频文件混合到一个输出文件中。 例如,我需要将.m4a文件与.mp3或.wav或任何其他格式文件合并。 生成的输出文件应为.m4a类型。

我已经使用以下链接编译了FFMPEG for iOS:http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/2009-October/076618.html

现在,我无法理解继续前进的方向?

1 个答案:

答案 0 :(得分:0)

这更像是一个建议而不是一个答案。虽然我使用过其他语言的音频格式,但我对obj-c没有任何经验。除非您找到执行此特定任务的库,否则您可能需要解码文件并将其数据转换为一些常见的数字表示。

sample data of a .wav文件存储为-32768到32767范围内的有符号整数,而mp3 sample data存储为-1到+1范围内的浮点数。可以通过一些简单的计算将表示转换为另一个。

mp3ToWavSample = mp3Sample * 32767

数据转换后,“合并”变得非常容易。您只需将样本值一起添加即可。

mergedSample = convertedSample1 + convertedSample2

您需要将其应用于mp3中的每个示例。根据文件的大小,这可能是一项重要的处理任务。

至于在你的曲目中加入混响,我建议你在另一个问题上寻求帮助。