2016-12-30 25 views
-1

我有兩個錄製的相同事件,不同的長度,在不同的時間開始。我想同步它們,時間偏移是已知的。我想要達到以下效果:c# - WAV文件修剪和添加靜音

  1. 將第二個時間與時間偏移對齊。
  2. 修剪第二個以匹配第一個的長度
  3. 當沒有任何要修剪時,添加沉默以匹配第一個的長度。

    我找到了修剪音頻的方法,但我無法找到添加靜音的解決方案。有沒有辦法用NAudio,ffmpeg或Aurio來做到這一點?
+0

這可以用ffmpeg完成。提供關於持續時間的細節以及需要什麼抵消/修剪/沉默,然後我會寫出一個命令。 – Mulvya

回答

0

對不起,沒有響應,但我解決了我的問題與使用ffmpeg。以下是我的工作方法:

ffmpeg -f lavfi -i aevalsrc=0:d=8.375 -i inputfile.wav -filter_complex "[0:0] [1:0] concat=n=2:v=0:a=1" -ss 0 -to 63.787 outputfile.wav

-i aevalsrc=0:d=8.375生成持續時間(d)爲8.375秒的沉默。
-filter_complex "[0:0] [1:0] concat=n=2:v=0:a=1合併沉默和輸入文件。 - Concatenation
-ss 0 -to 63.787修剪輸出(到第一文件的長度從一開始,即63.787,如果輸入是比較短,輸出文件輸入文件的持續時間) - Seeking

如果偏移值是負的,那麼它的:

ffmpeg -i inputfile.wav -ss 22.316 -t 54.213 outputfile.wav


因此,輸出文件是從22.316秒開始的輸入文件,持續時間爲54.213

我使用NReco.VideoConverter作爲ffmpeg包裝。