具有不同通道数的 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
)提供一个将偶数通道与偶数和奇数与奇数相加的函数,它会杀死他们吗?因为这可能就是你想要的。
我有一个 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
)提供一个将偶数通道与偶数和奇数与奇数相加的函数,它会杀死他们吗?因为这可能就是你想要的。