首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >libsox将多声道wav分割为单声道

libsox将多声道wav分割为单声道
EN

Stack Overflow用户
提问于 2012-09-10 02:10:44
回答 1查看 1.2K关注 0票数 0

我想将一个多通道(2,8或16) wav文件分割成它的通道,并将每个通道保存在另一个wav文件中。

到目前为止,我已经在我的c++,objective c++项目中启动并运行了libsox。

Libsox没有很好的文档记录,有很多关于如何做到这一点的例子:(

我首先打开Inputfile

代码语言:javascript
复制
sox_format_t * in, * out;
assert(sox_init() == SOX_SUCCESS);
assert(in = sox_open_read((const char*)filename.c_str(),NULL,NULL,NULL));

现在我必须找到一种方法来获得这个文件的通道数。然后,我必须创建相同数量的输出文件,并在其中保存每个通道本身。

怎么办?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-10 17:15:41

我想我会用老办法来做。

数据块的长度由file.

  • Determine的通道数
  • 决定。

数据块长度/ channelCount =每个数据块的大小保存方式类似于WavFile- channelBlock

  • Channels块(对于4通道WavFile) ch1/ch2/ch3/ch4ch1/ch2/ch3/ch4。

  • I遍历数据块提取通道并将其放入单音频文件

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12341598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档