(MLT框架)<tractor>如何决定使用<track />哪个框架,将<transition>考虑在内?

时间:2016-07-24 18:06:15

标签: mlt

我无法理解为什么MLT采用以下示例,使用来自轨道#1(中间轨道)的视频帧而不是轨道#0和轨道#2组成的轨道#0。任何解释?

让我们假设一个简单的MLT设置,类似于:

<mlt>
  ... <!-- some producers here -->
  <tractor>
    <multitrack>
      <track producer="playlist1"/>
      <track producer="playlist2"/>
      <track producer="playlist3"/>
    </multitrack>
    <transition id="transition1">
      <property name="a_track">0</property>
      <property name="b_track">2</property>
      <property name="mlt_service">composite</property>
    </transition>
  </tractor>
</mlt>

现在让我们假设所有三个播放列表都有以相同的入点和出点开头的视频片段。也就是说,所有三个片段都相互重叠。

没有任何过渡,如果我是正确的,我理解拖拉机的工作方式,它始终是第2轨道的“最顶层”视频帧,即“播放列表3”。

但是当“transition1”到位时,拖拉机从第1号轨道(又称“播放列表2”)中取出帧。请记住,所有三个播放列表都有相同的入点和出点,因此它们会在时间上重叠。

有人可以向我解释为什么拖拉机现在从轨道#1“生成”视频帧而不是从轨道#2的组合到轨道#0?

我原本应该预期后者或者来自#2的轨道,但是使用Kdenlive快速检查表明只有来自第2轨的视频帧被拍摄。为什么呢?

1 个答案:

答案 0 :(得分:1)

正如我现在所了解的那样,在过渡期间,使用转换基本上“消耗”顶部/ B轨道。事实上,这确实是有道理的,尽管它使MLT略显反直觉。考虑到“消费者规则”,我上面的例子如下:

  1. 曲目0,1,2出现。
  2. transition1消耗曲目2.
  3. 追踪0和1。
  4. 轨道1现在是产生帧的最顶层轨道。