Audio libsox将多通道wav拆分为单通道
我想将一个多通道(2、8或16)wav文件拆分为其通道,并将每个通道保存在另一个wav文件中 <>我已经完成了LIbSOX在我的C++,Objject C++项目中运行和运行。 Libsox没有很好的文档记录,关于如何做到这一点,有很多例子:( 我首先打开输入文件Audio libsox将多通道wav拆分为单通道,audio,split,sox,Audio,Split,Sox,我想将一个多通道(2、8或16)wav文件拆分为其通道,并将每个通道保存在另一个wav文件中 我已经完成了LIbSOX在我的C++,Objject C++项目中运行和运行。 Libsox没有很好的文档记录,关于如何做到这一点,有很多例子:( 我首先打开输入文件 sox_format_t * in, * out; assert(sox_init() == SOX_SUCCESS); assert(in = sox_open_read((const char*)filename.c_str(),NU
sox_format_t * in, * out;
assert(sox_init() == SOX_SUCCESS);
assert(in = sox_open_read((const char*)filename.c_str(),NULL,NULL,NULL));
现在我必须找到一种方法来获得这个文件的通道数。然后我必须创建相同数量的输出文件,并将每个通道本身保存在其中
怎么办
谢谢!我想我会用老式的方式来做
- 确定文件的通道计数
- 确定数据块的长度
Length of Data block / channelCount = Size of each channelBlock
- 通道被保存在WavFile数据块中(对于4通道WavFile) CH1/Ch2/Ch3/Ch4 CH1/Ch2/Ch3/Ch4
- 我运行数据块提取通道,并将它们放入mono wav文件中
src/exampl中e*c
。还有一个问题,尽管它有点稀疏。@MalawiM似乎FAQ条目实际上并不是指INDELEVEING/DEINTERLEVEING,而是指下混音。从libsndfile数据的m个通道中选择通道n非常容易,就像您在回答中描述的那样。