2016-07-24 2 views
1

Ich kann nicht verstehen, warum MLT, im folgenden Beispiel, Videoframes von Track # 1 (mittlerer Track) anstelle von Track # 0 mit Track # 2 verwendet. Irgendeine Erklärung?(MLT Framework) Wie kann eine <tractor> entscheiden, welchen Frame zu verwenden, von <track>, unter Berücksichtigung <transition> s berücksichtigt?

Lassen Sie uns ein einfaches MLT-Setup übernehmen, entlang der Linien von:

<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> 

Nun wollen wir auch davon ausgehen, dass alle drei Wiedergabelisten mit demselben Videoclips haben Start- und Endpunkte zu starten. Das heißt, alle drei Clips überlappen einander.

Ohne Übergang, wenn ich richtig liege, verstehe ich den Traktor so arbeiten, dass es immer den "obersten" Video-Frame von Track # 2, das heißt, von "Playlist3" dauert.

Aber mit "transition1" an der richtigen Stelle nimmt der Traktor die Rahmen vom Gleis # 1, alias "playlist2". Denken Sie daran, dass alle drei Wiedergabelisten die gleichen In- und Out-Punkte haben, so dass sie sich zeitlich überschneiden.

Kann mir jemand erklären, warum der Traktor jetzt Videoframes von Track # 1 anstatt von der Komposition von Track # 2 auf Track # 0 "produziert"?

Ich hätte entweder die letztere oder von Spur # 2 sonst erwartet, aber eine schnelle Überprüfung mit Kdenlive zeigt, dass nur Videoframes von Spur # 2 genommen werden. Warum?

Antwort

1

Wie ich jetzt gelernt habe, "verbraucht" die Verwendung eines Übergangs die obere/B-Spur für die Dauer des Übergangs. Und das macht tatsächlich Sinn, obwohl es MLT etwas kontraintuitiv macht. Unter Berücksichtigung der "Consumer-Regel" funktioniert mein Beispiel oben wie folgt:

  1. Spuren 0, 1, 2 sind vorhanden.
  2. transition1 verbraucht Spur 2.
  3. Spuren 0 und 1 sind übrig.
  4. Spur 1 ist jetzt die oberste Spur, die Frames produziert.