Freigeben über


IAMTimecodeReader-Schnittstelle (strmif.h)

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde durch MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation ersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]

Die IAMTimecodeReader-Schnittstelle liest SMPTE- oder MIDI-Timecode von einem externen Gerät. Die MSDV - und MSTape-Treiber unterstützen diese Schnittstelle zum Lesen von Timecode von einem externen DV- oder MPEG-2-Camcorder.

Vererbung

Die IAMTimecodeReader-Schnittstelle erbt von der IUnknown-Schnittstelle . IAMTimecodeReader verfügt auch über folgende Membertypen:

Methoden

Die IAMTimecodeReader-Schnittstelle verfügt über diese Methoden.

 
IAMTimecodeReader::get_VITCLine

Die get_VITCLine-Methode ruft die vertikale Intervalllinie ab, die der Timecodeleser zum Lesen von Timecode verwendet.
IAMTimecodeReader::GetTCRMode

Die GetTCRMode-Methode ruft die Eigenschaften des Timecodelesers ab.
IAMTimecodeReader::GetTimecode

Die GetTimecode-Methode ruft die neuesten Timecode-, Userbit- und Flagwerte ab, die im Stream verfügbar sind.
IAMTimecodeReader::p ut_VITCLine

Die put_VITCLine-Methode gibt die vertikale Intervalllinie an, die der Timecodeleser zum Lesen von Timecode verwendet.
IAMTimecodeReader::SetTCRMode

Die SetTCRMode-Methode legt die Timecodelesereigenschaften fest.

Hinweise

Für Windows Driver Model (WDM)-Geräte macht der WDM-Videoaufnahmefilter diese Schnittstelle automatisch verfügbar, wenn der WDM-Treiber den PROPSETID_TIMECODE_READER-Eigenschaftssatz unterstützt. Weitere Informationen finden Sie in der Dokumentation zum Windows Driver Kit (WDK).

SMPTE-Timecode ist ein Frameadressierungssystem, das Video- und Audioquellen identifiziert, die automatische Spursynchronisierung ermöglicht und einen Container für zusätzliche Daten im Zusammenhang mit dem Quellmaterial bereitstellt. Der Standard Zweck des SMPTE-Timecodes besteht darin, eine maschinenlesbare Adresse für Video und Audio bereitzustellen. Es wird im hh:mm:ss:ff-Format (Stunden, Minuten, Sekunden, Frames) angezeigt und ist in ANSI/SMPTE 12-1986 gründlich definiert.

Anwendungen sparen Timecode in der Regel auf eine von zwei Arten. Sie wird entweder als zusätzlicher Stream oder als Diskontinuitätstabelle im erweiterten AVI-Dateiindex in die Erfassungsdatei geschrieben. Es wird häufig verwendet, um die Erfassung oder Wiedergabe auszulösen und Entscheidungslisten zu erstellen, die beschreibt, wie Quellmaterial in einem fertigen Produkt organisiert wird.

Wenn Sie Timecode erfassen möchten, behandeln Sie ihn als separaten Stream mit einem eigenen Medientyp. Sie kann von einem geeigneten Dateischreib-Multiplexerfilter verwendet werden. Manchmal gibt es jedoch Fehler beim Lesen des Timecodes vom Band aufgrund von Ausbrüchen und anderen mechanischen Bandproblemen. In solchen Fällen sollte der Timecodequellenfilter einfach Beispiele löschen und das nächst gültige Mit der Diskontinuitätseigenschaft markieren.

Wenn Sie timecodes verwenden möchten, um die Aufzeichnung oder Wiedergabe von einem zeitcodierten (oder "striped") Videoband auszulösen, läuft die Ereignissequenz wie folgt ab:

  1. Erstellen Sie ein Erfassungsdiagramm, öffnen Sie eine AVI-Zieldatei, und stellen Sie bei Bedarf Speicherplatz vor. Wenn das erfasste Material an eine vorhandene AVI-Datei angefügt wird, suchen Sie vor dem Schreiben an das Ende der Datei. Das Erfassungsdiagramm wird an dieser Stelle angehalten.
  2. Durchsuchen Sie den Videorekorder zum Aufnahmestartpunkt, und notieren Sie sich den Timecode. Sie können diesen Wert entweder manuell in Ihr Programm eingeben, oder die Anwendung kann ihn automatisch lesen. Das automatische Lesen erfordert, dass das Diagramm ausgeführt wird, aber die Streamsteuerungsschnittstellen auf den Eingabepins des Dateimultilyxers verwerfen eingehende Stichproben, wodurch die Erfassung effektiv gesteuert wird.
  3. Weisen Sie den VcR darauf hin, die Position vorzurollen, in der Regel fünf Sekunden vor dem Zielpunkt.
  4. Starten Sie den Videorekorder und das Diagramm. Wenn der Triggerpunkt erreicht ist (oder der Triggerpunkt abzüglich des Vorabrolls des Dateischreibers), geben die Streamsteuerungsschnittstellen den Dateimultimultixer frei und beginnen mit dem Streaming von Medienbeispielen an den Dateischreiber.
  5. Sie können den Erfassungsprozess manuell oder durch Festlegen einer Duration-Eigenschaft auf der Streamsteuerungsschnittstelle beenden.
Sie müssen den diskontinuierlichen Timecode sowohl während der Vorregistrierung als auch während des Erfassungsprozesses berücksichtigen. es ist sinnvoll, zu verlangen, dass der Timecode kontinuierlich und monoton während des Vorroll- und Erfassungsstartpunkts erhöht wird. Dadurch wird eine potenziell mehrdeutige Berechnung relativer Datenstromzeiten durch die IMediaSeeking::ConvertTimeFormat-Methode verhindert. Außerdem muss der Timecode nicht das einzige Gatingsignal für die ausgelöste Erfassung sein. Alle Zeitstempeldaten, die im vertikalen Leerungsintervall gespeichert sind, z. B. Intercast- oder Untertiteldaten (XDS), können verwendet werden, um das Streaming von Video- und Audiodaten auf den Datenträger zu starten.

Hardware-Anforderungen

Hardwareanforderungen finden Sie in der IAMExtTransport-Schnittstelle .

Filterentwickler

Implementieren Sie diese Schnittstelle in einem externen Gerätefilter, wenn Sie angeben möchten, wie ein externes Gerät SMPTE-/MIDI-Timecodeinformationen lesen soll. Machen Sie die IMediaSeeking-Schnittstelle in Ihrem Filter verfügbar, damit Anwendungen timecode mithilfe der IMediaSeeking::ConvertTimeFormat-Methode in die Referenzzeit konvertieren können.

Das externe Gerät muss in der Lage sein, Timecode zu lesen und über seine Steuerungsschnittstelle an den Computer zu senden. Wenn dies nicht der Fall ist, müssen Sie entweder über einen Timecodeleser Karte auf Ihrem Computer verfügen, oder Sie können einen Softwaredecoder schreiben, der VITC (Vertical Interval Timecode) in aufgezeichnete Videoframes oder LTC (linearer Timecode), der als Audiosignal erfasst wurde, in DirectShow-Timecodebeispiele konvertiert.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile strmif.h (include Dshow.h)

Siehe auch

Schnittstellen