我有两个立体声文件:1.mp3、2.mp3
我想以特殊方式合并这两个音频文件
我的意思是我希望 3.mp3 成为一个立体声文件,其左声道为 1.mp3,右声道为 2.mp3
最佳答案
您可以通过以下步骤实现这一目标:
解码 1.mp3 和 2.mp3 文件
保存解码后的原始数据(在不同的 WAVE 格式文件或内存中)
将 1.mp3 解码的原始数据的第一或第二 channel 值逐一替换为 2.mp3 解码的原始数据的第一或第二 channel 值(请注意,这会导致音频质量损失)
根据合并的音频数据特征构造WAVE(原始音频数据格式) header
使用构建的 WAVE header 和合并的音频数据创建 WAVE 格式的 3.wav 文件
将 3.wav 文件转换为 3.mp3 文件格式
执行这些步骤需要您了解:
如何解码mp3文件以获取原始数据
如何操作缓冲区中的数据字节
WAVE 声音文件格式
如何将 wav 转换为 mp3
要解码和编码不同格式的音频文件,您可以使用一些适当的声音库(例如 BASS ) - 这可以帮助您执行第 1 步和第 6 步。要构建 WAVE 格式的音频数据,您应该熟悉 WAVE File Format以及音频数据通道如何在缓冲区中对齐 - 这可以帮助您执行 3、4 和 5 个步骤
关于c++ - 如何合并(混合)两个立体声 mp3 音频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53844920/