将wav文件分割成片段

问题描述:

我想编写一个简单的程序,它需要一个中等大小的wav文件(大约60秒左右),并将其剪切成1个相同格式的长度段(1.wav,2.wav, ...等)...是否有一个简单的C++或Java库可以做到这一点?我不想操纵标题信息将wav文件分割成片段

+1

如果您不想操纵标题信息,那么分散的块将不能播放。 – Rakesh 2012-03-21 05:05:36

+0

也许perl/python/shell脚本可以轻松完成。 – madper 2012-03-21 06:02:33

+0

听起来像是tcl小吃库的工作。 – ldav1s 2012-03-21 06:12:10

看看libsndfile。另见this其他帖子。 您将要:

  • 除去WAV头访问原始PCM样本数据
  • 遍历sample_rate样本,这将表示音频1秒和打包这些缓冲区到一个新的WAV文件(标题)直到你到达原来的EOF

HTH

+0

你做了伎俩谢谢 – 2012-03-23 07:40:16

Shell脚本缠住ffmpeg命令行实用程序。另外,sox

http://sox.sourceforge.net/

可以使用的AudioInputStream类来做到这一点。另请查看this网站了解更多关于AudioInputStream的信息

ffmpeg的有两个标志,可能是我们的:-t其设置目标文件的持续时间,以及-ss这台在您开始读取输入文件的位置。

所以:

的ffmpeg -t 2 -i input.mp3 output.mp3 的ffmpeg -ss 2 -t 2 -i input.mp3 output2.mp3

创建两个文件 - 一个包含了输入.mp3的前两秒,以及从2秒开始(即秒后两秒)内包含两秒输入.mp3的输入。

为了从文件中得到你想要的东西,可以实现它的组合。