具有不同通道数的 AudioConverterRef

AudioConverterRef with different number of channels

我有一个 4 声道的音频格式,我想将其转换为 2 声道格式。 kAudioConverterChannelMap只能丢弃多余的输入:

When In > Out, the first Out inputs are routed to the first Out outputs, and the remaining inputs are discarded.

是否可以通过 kAudioConverterChannelMap 指定通道映射,将 1 + 2 通道合并为一种输出格式,将 3 + 4 通道合并为第二种输出格式?

如果不是,我应该使用什么进行此转换?

AFAIK Apple 没有提供 API 来减少音频流的通道数,除了丢弃额外的通道。

为什么?我想是因为你如何做是个人选择,如果他们真的考虑过,他们可能会得出结论,没有一种方法能让每个人都开心,所以最好选择让每个人都开心的方法愤怒:丢弃。

那有什么大不了的?我认为这主要与各个频道的“意义”有关。考虑将立体声转换为单声道的“明显简单”的情况——它是 surprisingly nuanced,具体取决于立体声音频的录制方式。 在理想情况下,您的 2 声道音频实际上被声明为“立体声”(例如,通过 AudioChannelLayoutTag,如 kAudioChannelLayoutTag_Stereo)。

所以即使是“标记”的多声道音频也非常模棱两可,所以唯一知道如何解释和减少您的 4 声道音频的声道数的人是 .

就是说,如果使用一些 Accelerate/vDSP 数组函数(例如 vDSP_vadd)提供一个将偶数通道与偶数和奇数与奇数相加的函数,它会杀死他们吗?因为这可能就是你想要的。