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

Objective c 如何使用FFMPEG混合不同格式的声音文件?,objective-c,ios,audio,ffmpeg,mixing,Objective C,Ios,Audio,Ffmpeg,Mixing,我需要通过iPad应用程序中的代码将不同类型的音频文件混合到一个输出文件中。 例如,我需要将.m4a文件与.mp3或.wav或任何其他格式的文件合并。 生成的输出文件应为.m4a类型 我已使用以下链接编译了iOS的FFMPEG: 现在,我不知道该朝哪个方向前进?这更多的是一个建议,而不是一个答案。我没有任何使用obj-c的经验,尽管我曾使用过其他语言的音频格式。除非找到执行此特定任务的库,否则可能需要对文件进行解码,并将其数据转换为一些常见的数字表示形式 该文件存储为-32768到32767范围

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

我已使用以下链接编译了iOS的FFMPEG:


现在,我不知道该朝哪个方向前进?

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

该文件存储为-32768到32767范围内的有符号整数,而存储为-1到+1范围内的浮点。任何一种表示都可以通过简单的计算转换为另一种表示

mp3ToWavSample = mp3Sample * 32767
一旦数据被转换,“合并”变得非常容易。您可以简单地将示例值添加到一起

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


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

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

该文件存储为-32768到32767范围内的有符号整数,而存储为-1到+1范围内的浮点。任何一种表示都可以通过简单的计算转换为另一种表示

mp3ToWavSample = mp3Sample * 32767
一旦数据被转换,“合并”变得非常容易。您可以简单地将示例值添加到一起

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


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

你能定义一下混音的含义吗?在FFMPEG中,您可以将单声道曲目组合成一个立体声曲目。但我不认为ffmpeg会让你在传统意义上“混音”,它是为转换而设计的。我所说的混合是指:假设我有一个带有鼓点的文件,另一个带有吉他声音。当混合时,输出文件应该像一个完整的乐器一样同时播放这两种音乐。我认为ffmpeg不会让你这么做。还有其他方法吗。此外,我还必须将混响效果添加到.m4a文件中。有没有这样的库或api可以让我同时实现这两个功能?@iPhoneDev:你能分享一下你是如何实现不同格式文件的混音的吗?我有相同的查询。我尝试了混合两个.caf文件,它正在工作。但当我尝试混合不同的格式时,它不起作用。如果你能在这方面提供一些指导,那就太好了。你能定义一下你所说的混合是什么意思吗?在FFMPEG中,您可以将单声道曲目组合成一个立体声曲目。但我不认为ffmpeg会让你在传统意义上“混音”,它是为转换而设计的。我所说的混合是指:假设我有一个带有鼓点的文件,另一个带有吉他声音。当混合时,输出文件应该像一个完整的乐器一样同时播放这两种音乐。我认为ffmpeg不会让你这么做。还有其他方法吗。此外,我还必须将混响效果添加到.m4a文件中。有没有这样的库或api可以让我同时实现这两个功能?@iPhoneDev:你能分享一下你是如何实现不同格式文件的混音的吗?我有相同的查询。我尝试了混合两个.caf文件,它正在工作。但当我尝试混合不同的格式时,它不起作用。如果你能在这方面给我一些指导,那就太好了。