Zeit in DirectShow Editing Services
[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code mediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]
[Diese API wird nicht unterstützt und kann in Zukunft geändert oder nicht mehr verfügbar sein.]
Um Videos zu bearbeiten, müssen Sie mit einigen wichtigen Timing-Konzepten arbeiten. Beispiel:
- Jeder Clip hat eine Dauer.
- Clips, Übergänge und Effekte werden zu bestimmten Zeiten in einem Projekt angezeigt.
- Video hat eine Bildfrequenz, ausgedrückt in Bildern pro Sekunde (fps).
DirectShow Editing Services (DES) bietet verschiedene Methoden zum Festlegen oder Abrufen von Zeiten und Bildfrequenzen. Die Bedeutung dieser Werte hängt vom Kontext ab.
Zeitwerte
Wenn ein Parameter eine Zeit ausdrückt, sind drei unterschiedliche Bedeutungen möglich:
- Zeitachse: Die Zeit relativ zum Anfang der Zeitleiste. Beispielsweise kann ein Clip 2 Sekunden in der Zeitleiste beginnen, oder ein Übergang von 15 Sekunden in die Zeitleiste. Die Zeitleiste bestimmt das endgültige gerenderte Projekt, sodass Sie sich Zeitleiste Zeit auch als "Projektzeit" vorstellen können.
- Medienzeit: Ein Punkt in einer Quelldatei relativ zum Anfang der Datei, wie er während der normalen Wiedergabe erreicht wird. Wenn Sie beispielsweise über eine 10-Sekunden-Videodatei verfügen, liegt der Zeitpunkt in der Mitte der Datei bei 5 Sekunden, ausgedrückt als Medienzeit.
- Übergeordnete Zeit: Zeit relativ zu einem Objekt im Zeitleiste. Wenn ein Objekt beispielsweise bei 8 Sekunden auf der Zeitleiste beginnt und ein weiteres Objekt enthält, das bei 10 Sekunden auf der Zeitleiste beginnt, beginnt das untergeordnete Objekt bei 2 Sekunden relativ zum übergeordneten Objekt. Virtuelle Spuren beginnen alle zum Zeitpunkt 0 (relativ zum Zeitleiste). Daher entspricht für jedes Objekt in einer virtuellen Spur die übergeordnete Zeit Zeitleiste Zeit.
Die Medienzeit gilt nur für Quellobjekte. Jedes Quellobjekt verfügt über eine Medienstartzeit und eine Medienstoppzeit. Angenommen, Sie verfügen über einen 10-Sekunden-Videoclip, und Sie möchten nur 5 Sekunden von der Mitte des Clips verwenden, um die ersten 2 Sekunden und die letzten 3 Sekunden des Clips zu kürzen. Wenn der Clip 20 Sekunden im Projekt angezeigt werden soll (und eine normale Wiedergaberate vorausgesetzt wird), geben Sie die folgenden Start- und Stoppzeiten an.
Medienstart: 2 Sekunden
Medienstopp: 7 Sekunden
Zeitachsenstart: 20 Sekunden
Zeitachsenstopp: 25 Sekunden
Bildfrequenzen
Die Bildfrequenz ist die "Geschwindigkeit" eines Mediendatenstroms, gemessen in Bildern pro Sekunde. Wie bei Zeitwerten hängt die Bedeutung einer Framerate vom Kontext ab:
- Ausgabebildrate: Die Bildfrequenz des endgültigen gerenderten Projekts, definiert durch die Gruppe. Wenn Sie das Projekt rendern, wird jede Gruppe zu einem separaten Medienstream mit eigener Bildfrequenz.
- Bildfrequenz der Quelle: Die Framerate, in der die Quelldatei ursprünglich erstellt wurde. Die erstellte Bildfrequenz muss nicht mit der Ausgabebildrate der Gruppe übereinstimmen. DES wird die Datei bei Bedarf automatisch auf- oder heruntersamppeln. Bei den meisten Medienformaten kann DES die Bildfrequenz bestimmen, indem das Format untersucht wird. Eine DIB-Sequenz ist eine Ausnahme. Sie müssen die Bildfrequenz einer DIB-Sequenz angeben. (Weitere Informationen finden Sie unter Arbeiten mit Quellen.)
Wiedergaberate: Die scheinbare Geschwindigkeit eines Quellclips, wenn er im Projekt angezeigt wird. Beispielsweise können 10 Sekunden Video in 5 Sekunden auf dem Zeitleiste. Infolgedessen erhöht sich die Geschwindigkeit des Clips um den Faktor 2, wie im folgenden Diagramm veranschaulicht.
(Bei einer Audioquelle würde sich auch die Tonhöhe verschieben.) Die folgende Formel bestimmt die Wiedergaberate eines Quellclips:
- Wiedergaberate = (Medienstopp – Medienstart) / (Zeitachsenstopp – Zeitachsenstart)
Beachten Sie, dass jeder dieser drei Tarife unabhängig von den anderen ist:
- Sie können einen Clip beschleunigen oder verlangsamen, indem Sie die Medienzeiten anpassen. Dies wirkt sich nicht auf die Bildfrequenz der endgültigen Ausgabe aus.
- Sie können die Ausgabebildrate erhöhen oder verringern, ohne die Wiedergabegeschwindigkeit einer Datei zu beeinflussen.
- Sie können in derselben Gruppe Quelldateien mit unterschiedlichen erstellten Bildfrequenzen mischen, und DES wird jeden Clip auf- oder herunterstempeln, um der Bildfrequenz der Gruppe zu entsprechen.
Wenn Sie ein Projekt rendern, werden alle Zeiten auf die nächste Framegrenze gerundet, wie von der Gruppenbildrate bestimmt. Angenommen, eine Videogruppe hat eine Bildfrequenz von 30 fps. Jeder Frame beträgt etwa 33 Millisekunden (ms). Angenommen, Sie fügen dem Zeitleiste einen Quellclip von 1,68 Sekunden hinzu, beginnend mit der Zeit 0. Die Quelle endet nicht genau auf einer Framegrenze, sodass DES die Stoppzeit auf 1,6666 Sekunden (50 Frames) rundet. Wenn Sie versuchen, 1,68 Sekunden im gerenderten Projekt zu erhalten, suchen Sie tatsächlich nach dem Ende der Quelle, bis zum 51. Frame.
DES überschreibt jedoch nicht die Endzeit der Quelle. Sie können später die Gruppenbildrate ändern oder die Quelle an eine neue Stelle im Zeitleiste verschieben, an der sie unterschiedlich rundet. Daher behält DES die ursprüngliche Stoppzeit bei und rundet nur bei Bedarf. Weitere Informationen finden Sie unter IAMTimelineObj::FixTimes.
Zugehörige Themen