将wav文件切割成段

时间:2012-03-21 04:56:03

标签: java c++ c wav

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

4 个答案:

答案 0 :(得分:2)

Shell脚本包裹在ffmpeg命令行实用程序周围。另外,sox

http://sox.sourceforge.net/

答案 1 :(得分:1)

您可以使用AudioInputStream类来执行此操作。另请查看this网站以获取有关AudioInputStream

的更多信息

答案 2 :(得分:0)

看看libsndfile。另请参阅this其他帖子。 你会想:

  • 删除WAV标头以访问原始PCM示例数据
  • 循环播放sample_rate个样本,这些样本将代表1秒的音频,并将这些缓冲区打包成新的WAV文件(带标题),直到您达到原始版本的EOF

HTH

答案 3 :(得分:0)

ffmpeg有两个可能属于我们的标志:-t用于设置目标文件的持续时间,-ss用于设置在输入文件中开始读取的点。

所以:

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

创建两个文件 - 一个包含input.mp3的前两秒,另一个包含两秒input.mp3,从2秒开始(即第二个两秒......)。

可以实现这一点的组合,以便从文件中获得您想要的内容。