2016-12-30 26 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包装。