Ich bin Programmierer und verarbeite Adobe Premiere- .prproj
Dateien. Ich lese die enthaltenen XML-Daten, um herauszufinden, wo <Media>
die Videodatei eines Elements beginnt.
Ich habe ein Video, das mit einem Timecode aufgenommen wurde, der bei 10:00:00:00 beginnt, dh genau 10 Stunden oder 36000 Sekunden. Diesen Timecode zeigt Premiere für den Anfang der Datei an.
Die entsprechenden Daten in der Projektdatei sind:
<Media ...>
...
<Start>9153720576000000</Start>
</Media>
Dieser Wert verwendet Ticks als Einheit.
Nun gehe ich davon aus, dass eine Sekunde 254016000000 Ticks entspricht. Denn wenn ich zum Beispiel eine Sequenz mit 25 FPS habe, gibt ihr FrameRate-Element im XML 10160640000 Ticks an, und das ist genau eine 25stel Sekunde.
Aber wenn ich den <Start>
Wert 9153720576000000 durch 254016000000 dividiere, bekomme ich 36036 Sekunden und nicht wie erwartet 36000 Sekunden.
Durch Lesen der XML-Werte erfahre ich also, dass das Video um 10:00:36:00 beginnt.
Seltsamerweise ist dieser Unterschied genau das 1001/1000-Verhältnis des NTSC-Drop-Frame-Timings, richtig?
Wie verstehe ich nun die Daten in der Premiere-Projektdatei? Einerseits identifiziert die Tick-Basis von 254016000000 genau die verwendeten Bildraten in derselben Datei, also muss es der richtige Wert für Ticks pro Sekunde sein . OTOH, es ist für Zeitcodes um 1 ms pro Sekunde ausgeschaltet.
Wie soll ich die Tick-Werte in der Datei interpretieren? Soll ich sie alle um einen Faktor von 1,001 anpassen, um den tatsächlichen Zeitcode zu erhalten, oder wo ist mein Fehler bei all dem?
Oder ist es bekannt, dass Timecodes nicht auf tatsächlichen Sekunden, sondern auf 1,001 Sekunden basieren?
Mit anderen Worten, bedeutet 10:00:00:00, dass es tatsächlich bei 36036 Sekunden beginnt?
Aktualisieren
Es scheint, dass es tatsächlich eine Drift mit Timecodes gegenüber der Echtzeit gibt, aber nur, wenn die Aufzeichnung laut diesem Artikel gebrochene FPS wie 29,97 oder 23,976 (= 23,98) verwendet .
Und tatsächlich wurde die fragliche Mediendatei mit 23,98 FPS aufgezeichnet.
Gehe ich also richtig in der Annahme, dass ich bei jeder Interpretation eines Timecodes auch die beteiligten FPS betrachten muss, und wenn es sich um einen Bruchteil handelt, muss ich 1 ms pro Sekunde zur berechneten Zeit hinzufügen, um auf lange Sicht genauer zu sein ? (Die Einzelbildgenauigkeit ist mir egal, daher spielt es keine Rolle, wann ich die Driftkorrektur anwende, es ist nur eine Frage, wann ich sie überhaupt anwende.)
Lassen Sie mich zunächst sagen, dass ich keine Ahnung habe, was Premiere mit seinen Werten macht oder was ein „Häkchen“ in ihren Begriffen bedeutet. Ich kann nur allgemein sprechen.
Die Video-Framerate sollte mit der Timecode-Rate übereinstimmen, aber für Drop-Frame-Timecodes ist die Beziehung nicht perfekt linear. Es gibt bestimmte Timecode-Nummern, die nie in der Sequenz auftauchen – diejenigen, die „ausgelassen“ werden. Für solche Codes kann man also nicht einfach rechnen, man muss die Drops berücksichtigen.
Im Laufe von 1 Stunde gibt es 108000 Frames bei 30 fps, aber der Drop-Frame-Code erzeugt nur 107892 eindeutige Zahlen. Beide Uhren stimmen darin überein, dass "die Zeit" 1:00:00:00 ist.
Wenn Sie nur Timecodes verwenden, um jeden Frame mit einer eindeutigen Nummer zu kennzeichnen, reicht jedes Schema aus. Wenn Sie die Tageszeit abgleichen müssen, müssen Sie die ausgelassenen Zahlen berücksichtigen. Was müssen Sie mit Ihren Werten tun?
Jim Mack
Thomas Tempelmann
Jim Mack
Thomas Tempelmann