2012-03-21 101 views
1

我想編寫一個簡單的程序,它需要一箇中等大小的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

回答

0

看看libsndfile。另見this其他帖子。 您將要:

  • 除去WAV頭訪問原始PCM樣本數據
  • 遍歷sample_rate樣本,這將表示音頻1秒和打包這些緩衝區到一個新的WAV文件(標題)直到你到達原來的EOF

HTH

+0

你做了伎倆謝謝 – 2012-03-23 07:40:16

1

可以使用的AudioInputStream類來做到這一點。另請查看this網站了解更多關於AudioInputStream的信息

0

ffmpeg的有兩個標誌,可能是我們的:-t其設置目標文件的持續時間,以及-ss這臺在您開始讀取輸入文件的位置。

所以:

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

創建兩個文件 - 一個包含了輸入.mp3的前兩秒,以及從2秒開始(即秒後兩秒)內包含兩秒輸入.mp3的輸入。

爲了從文件中得到你想要的東西,可以實現它的組合。