关于从视频中删除沉默

时间:2013-05-31 12:42:40

标签: algorithm avisynth

  1. 我有一个带声音的视频。
  2. 我提取了它的音频。
  3. 我从这个音频的adobe试听中提取了一个切割清单,如下所示:

    开始: 00:00:12:00

    结束: 00:00:13:00

    这些是沉默的部分,需要删除。

  4. 我将这些转换为给定25fps视频文件的帧。

  5. 我创建了一个像这样的avisynth文件:

    AVISource( “20130531_1303_46.avi”)

    裁切(2,0,852,480)

    修剪(0,4-1)++修剪(50 + 1,0)

    修剪(0,34-1)++修剪(82 + 1,0)

    ...

    每一行包含开始(第一个修剪)减去(前一个结束和开始之间的所有差异的总和)和结束(第二个修整)减去(前一个结束和开始之间的所有差异的总和) - 帧。

    < / LI>
  6. 我将其加载到virtualdub。

  7. 我根据剪切列表删除了试听中的所有沉默并另存为mp3
  8. 我将mp3加载到virtualdub。
  9. 问题:整个视频没有同步,即它开始同步,一段时间后它向正方向漂移(我必须输入-3000ms的负值才能使它在中间同步它也经常被切断。)

    意味着出了问题。我想是所有差异的总和。

    要理解这一点:

    当您在virtualdub中选择一个部件并将其删除时,帧的总数是帧的总数减去该部件的帧数。

    示例:

    移除了框架2-5。所以它基本上是1-6-7-8 -...左。根据一个原始的时间框架关系,我会从让我们说7开始。但是7现在是3.而且这加起来我删除的越多。

    所以我想:如果我使用帧数减去所有先前删除的帧的总和,我应该在正确的位置切割。

    我似乎忘记了什么,它是什么?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。如果我使用Start = 4和End = 50,那么我需要步骤

End - Start + 1 

前进而不是

End - Start

但是,25fps分辨率太低,有时音频部分会被切断。