Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
[Das feature, das dieser Seite zugeordnet ist, MCI-ist ein Legacyfeature. Es wurde von MediaPlayerersetzt. MediaPlayer- wurde für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code MediaPlayer- anstelle MCI-verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, um die neuen APIs zu verwenden, falls möglich umgeschrieben werden.]
Windows stellt VCR-Dienste über einen Gerätetreiber bereit, der auf dem MCI-Befehlssatz für VCRs basiert. In diesem Abschnitt wird der MCI Video System Control Architecture (VISCA)-Treiber beschrieben und erläutert, wie sie zum Steuern eines VCR verwendet werden.
Die vcr- Gerätetyp steuert VCRs. Eine Liste der von VCR-Geräten erkannten MCI-Befehle finden Sie unter VCR Command Set.
Der MCI VISCA-Treiber
Der MCI VISCA-Treiber steuert Sony VISCA-kompatible VCRs, z. B. das CVD-1000 VDeck. Der VISCA-Treiber steuert den Bandtransport, Kanal-Tuner und VCR-Eingabe- und Ausgabekanäle.
Suchen und Positionieren mit einem VCR
Der VISCA-Treiber verwendet zwei Methoden, um die Videotapebewegung innerhalb des VCR-Bandtransports nachzuverfolgen: Zeitcodeinformationen und Bandzähler. Timecodeinformationen sind Zeitangaben, die auf dem Videotape aufgezeichnet wurden. Die meisten VCRs ermöglichen es, Zeitcodes aufzuzeichnen, ohne Audio- und Videospuren zu zerstören. Bandzähler schätzen die Menge an Videotape, die über den Videotapekopf reist, um eine Position zu erhalten.
Sowohl Timecodeinformationen als auch Bandzähler erhöhen sich, wenn der Videotape von Anfang zu Ende wechselt. Aufgrund seiner Genauigkeit ist die Verwendung von Timecodeinformationen zum Positionieren eines Videotapes fast immer die Verwendung von Bandzählern vorzuziehen.
Die MCI-Befehlskennzeichnungen zum Angeben von Positionierungsinformationen werden als Zeitabhängigkeiten ausgedrückt: "Zeitformat", "Dauer", "Von", "an" und "Seek". (Außerdem gibt der Status Befehl "Position" den Zeitwert im aktuellen Zeitformat zurück.)
Der VISCA-Treiber verwendet den festlegen Befehl "Zeitmodus", um den Typ der Positionierung auszuwählen, die mit einem Videotape verwendet werden soll. Wenn der Zeitmodus auf "Timecode" festgelegt ist, verwenden der Status "Position" und festlegen, "Zeitformat"-Befehle den Timecode auf dem Videotape verwenden. Wenn der Zeitmodus auf "counter" festgelegt ist, verwenden die Status "Position" und festlegen, "Zeitformat"-Befehle Zähler verwenden.
Eine Anwendung kann den Zeitmodus auf "Erkennen" festlegen, wenn es keine Rolle spielt, dass es zwei Quellen von Positionsinformationen gibt. Im Erkennungsmodus verwendet der VISCA-Treiber Timecodeinformationen für die Positionierung, wenn eine der folgenden Bedingungen auftritt:
- Die Zeitcodeinformationen sind vorhanden, wenn der Treiber geöffnet wird.
- Sie ändern ein Videotape mit dem festlegen, Befehl "Tür öffnen" und Timecodeinformationen auf dem Videotape vorhanden sind.
- Der festlegen, Befehl "Zeitmodus" erneut ausgeführt wird.
Wenn Timecodeinformationen nicht gefunden werden können, verwendet der Treiber die Bandzähler.
Um die aktuelle Positionierungsmethode zu ermitteln, geben Sie den Status Befehl "Zeittyp" aus, der entweder "Timecode" oder "counter" zurückgibt. Sie können den aktuellen Positionierungsmodus auch mithilfe des Status Befehl "Zeitmodus" identifizieren, der "Timecode", "counter" oder "detect" zurückgibt.
Der Status "Counter"-Befehl ruft den aktuellen Bandzählerwert unabhängig von der aktuellen Positionierungsmethode ab; Sie können diesen Zähler jedoch nur mit dem festlegen "Counter"-Befehl verwenden.
Der VISCA-Treiber kann das systemeigene Timecodeformat abrufen, das auf einem Videotape aufgezeichnet wird, indem der Status "Timecodetyp" und Status "Framerate"-Befehle zusammen verwendet wird. Wenn der Timecodetyp beispielsweise "smpte" ist und die Framerate 25 beträgt, lautet das systemeigene Timecodeformat, das auf dem Videotape aufgezeichnet wird, SMPTE 25.
Der VISCA-Treiber kann die Gegenauflösung auch mithilfe des Status Befehl "Gegenauflösung" abrufen, der "Sekunden" oder "Frames" zurückgibt. Das Zählerformat ist möglicherweise weiterhin auf SMPTE 30 festgelegt, aber der Rückgabewert gibt nur einen Frame von 0 zurück. Wenn der aktuelle Zeittyp Zähler ist, gilt diese Auflösung auch für den wert, der von Status "Position" zurückgegeben wird.
Erfassen von Frames
Frame-Capture-Befehle stellen stille Bilder für ein Frameaufnahmegerätbereit. Ein Frameaufnahmegerät ist ein separates Hardwaregerät, das das Videobild lesen und speichern kann. Der VISCA-Treiber unterstützt den Befehl fixieren (MCI_FREEZE) zum Stabilisieren eines Stillbilds für die Aufnahme. Außerdem kann der Befehl aufheben der Fixierung (MCI_UNFREEZE) verwendet werden, um den Bandtransport nach einem fixieren Befehl neu zu starten.
Der befehl fixieren bietet eine qualitativ hochwertige, stabilisierte, zeitbasierte – korrigierte Grafik für ein Frameaufnahmegerät. Dieser Befehl ist vorhanden, da ein Gerät möglicherweise während der Wiedergabe oder während der Pause nicht immer sein Ausgabebild mit maximaler Qualität liefert. Ein solches Videobild eignet sich nicht für die Aufnahme.
Das aufheben der Fixierung Befehls entsperrt den Bandtransport und setzt den Transportmodus in Kraft, bevor der Befehl fixiert.
Wenn Ihre Anwendung ein Videobild auf dem VCR aufzeichnen muss, verwenden Sie den Befehl fixieren Befehl "Eingabe" oder den befehl (MCI_CUE) zum Aufzeichnen des Bilds.
Auswählen von Eingaben
Der VISCA-Treiber unterstützt drei Eingabetypen: Video, Audio und Timecode. Die Videoeingaben umfassen zwei Standardkanäle (Zeilen 1 und 2), einen SVideo-Kanal, einen Hilfskanal und einen Kanal von einem internen Tuner. Die Audioeingänge umfassen zwei Standardkanäle (Linien 1 und 2) und einen Kanal von einem internen Tuner. The timecode input is internal to the VCR.
Die normalen Ausgaben tragen die aktuell ausgewählten Eingaben, wenn der VCR aufgezeichnet wird oder wenn der Bandtransport beendet wird, und sie tragen den Inhalt des Videotapes, wenn der Bandtransport wiedergegeben oder angehalten wird. Die überwachten Ausgaben enthalten dieselben Informationen wie die normalen Ausgaben sowie aktuelle Zeitcode- und Kanalinformationen.
Wenn die entsprechenden externen Eingaben mit Ihrem VCR verbunden sind und Sie entschieden haben, was Sie aufzeichnen möchten, können Sie die zu erfassenden Eingaben auswählen. Wenn Sie z. B. das Video "svideo" und die Audioeingaben "Line 1" aufzeichnen oder anzeigen möchten, verwenden Sie zum Auswählen dieser Eingabequellen die setvideo- (MCI_SETVIDEO) und setaudio- (MCI_SETAUDIO) Befehle. Sie können diese Auswahlen mithilfe des Befehls Status (MCI_STATUS) überprüfen.
Standardmäßig zeigt der Monitor genau an, was als Ausgabe angezeigt wird. Manchmal möchten Sie jedoch möglicherweise eine Quelle während der Aufzeichnung von einer anderen anzeigen. Dies ist eine gängige Praxis bei der Verwendung des Tuners. Sie können beispielsweise Kanal 4 ansehen, während Sie Kanal 7 aufzeichnen. In diesem Fall verfügen Sie über zwei logische Tunereingaben. Sie können die VCR mithilfe der folgenden Befehle einrichten:
So überprüfen Sie eine Quelle während der Aufzeichnung von einer anderen
- Verwenden Sie den Befehl settuner (MCI_SETTUNER), um die Kanäle auszuwählen, die überwacht und erfasst werden sollen.
- Verwenden Sie den Befehl setvideo, um die Videoaufzeichnungsquelle auszuwählen.
- Verwenden Sie den Befehl setaudio, um die Audioaufzeichnungsquelle auszuwählen.
- Verwenden Sie den Befehl setvideo, um die Kanal-4-Videoeingabe an die überwachte Ausgabe weiterzuleiten, um sie auf dem Bildschirm anzuzeigen.
- Verwenden Sie den Befehl setaudio, um die Audioeingabe des Kanals 4 an die überwachte Ausgabe weiterzuleiten, um die Audiowiedergabe wiederzugeben.
- Überprüfen Sie Ihre Auswahl mithilfe des Befehls Status.
Der VISCA-Treiber unterstützt auch einen speziellen Eingabetyp für Audio und Video, stummschalten. Die Stummschaltung ermöglicht die Auswahl von "keine Eingabe", was beim Aufzeichnen eines leeren Signals hilfreich ist.
Auswählen von Aufzeichnungstiteln
In einem Videotape sind drei Arten von Aufzeichnungstiteln vorhanden: Video, Audio und Timecode. Sie haben nur einen Video- oder Zeitcodetitel, aber Sie können mehrere Audiospuren verwenden. Wenn Sie dies tun, machen Sie "Track 1" zum Hauptaudiotitel.
Der VISCA-Treiber unterstützt zwei Betriebsmodi: Zusammensetzen und Einfügen. Im Assemble-Moduswerden alle Tracks ausgewählt, die aufgezeichnet werden sollen. Im Einfügemoduskönnen Titel unabhängig für die Aufzeichnung ausgewählt werden. Die meisten VCRs befinden sich standardmäßig im Assemble-Modus. Verwenden Sie den Befehl Festlegen (MCI_SET) zum Ändern dieser Modi.
Aufzeichnung und Bearbeitung
Der befehl Datensatz (MCI_RECORD) bietet eine einfache Aufzeichnung und ist auf ungefähr 1 Sekunde der Startposition genau. Um den Videoinhalt genauer aufzuzeichnen, oder wenn Sie den Videoinhalt während des gleichzeitigen Betriebs mehrerer Folien bearbeiten möchten, sollten Sie den befehl cue (MCI_CUE) verwenden.
Der --Befehl bereitet das Gerät für die Aufzeichnung oder Wiedergabe vor. Verwenden Sie den befehl "Eingabe", um das Gerät für die Aufzeichnung vorzubereiten. Der -Befehl ist erforderlich, da eine Anwendung wissen muss, wann das Gerät zum Ausführen des Befehls bereit ist (und es kann mehrere Minuten dauern, (MCI_PLAY) oder Datensatz Befehl vorzubereiten).
Der VCR bereitet sich auf die Aufzeichnung oder Wiedergabe vor, indem der punktinternengesucht wird. Dies ist die aktuelle Position oder die position, die mithilfe des befehls cue "from" angegeben wird. Wenn das Flag "preroll" mit dem Cue Befehl angegeben wird, positioniert sich der VCR jedoch selbst den Abstand vor der Registrierung vom In-Point-Element. Das Flag "Preroll" gibt auch an, dass der VCR jeden anwendbaren Bearbeitungsmodus verwendet, daher ist es wichtig, dass Sie "Preroll" verwenden, insbesondere wenn Sie die genaueste Aufzeichnung wünschen. (Verwenden Sie den Befehl -Funktion (MCI_GETDEVCAPS) mit dem Flag "can preroll", um zu überprüfen, ob der Prerollmodus unterstützt wird.)
Anmerkung
Wenn Sie die Position "von" und "an" aufzeichnen, ist die Position "von" in der Bearbeitung enthalten, und die Position "an" ist nicht vorhanden.
Weitere Informationen zur Aufzeichnung finden Sie unter Aufzeichnung.
Verwenden der Uhr beim Bearbeiten
Beim Bearbeiten möchten Sie möglicherweise Segmente von einem VCR in einen anderen aufzeichnen. Sie können mit der Aufzeichnung zu einem bestimmten Zeitpunkt und einer bestimmten Position auf einem VCR beginnen, während eine andere mit der gleichzeitigen Wiedergabe und Position beginnt, indem Sie eine Aktion (Wiedergabe oder Aufzeichnung), eine Position und eine Uhrzeit für jede VCR angeben.
Beide VCRs müssen für diese Art von Bearbeitung dieselbe Uhr verwenden; die Uhr hilft bei der Synchronisierung beider Geräte. Sie können ermitteln, ob zwei VCRs dieselbe Uhr verwenden, indem Sie den Status (MCI_STATUS) Befehl mit dem Flag "Uhr-ID" verwenden, um die einzelnen VCR abzufragen. Wenn die vom Status zurückgegebenen Identifikationsnummern Befehl identisch sind, verwenden die Geräte dieselbe Uhr. Als freigegebene Ressource kann die Uhr mit mehreren VCRs verbunden werden. Der VISCA-Treiber unterstützt nur eine freigegebene Uhr.
Sie können auch die Uhrauflösung mithilfe des Befehls Status Befehl "Taktschrittrate" ermitteln. Dieser Befehl gibt die Anzahl der Inkremente zurück, die die Uhr pro Sekunde unterstützt. Wenn die Uhr beispielsweise alle Millisekunden aktualisiert wird, gibt der Befehl 1000 als Taktschritt zurück. Der Vorteil der Verwendung der Inkrementrate besteht darin, dass die Rate als ganze Zahl ausgedrückt wird; andernfalls wäre das Inkrement ein Gleitkommawert (single- oder double-precision). Als ganze Zahl ist die Bearbeitung der Inkrementrate ein einfacher Vorgang und ist nicht anfällig für Rundungsfehler. Sie können die Uhr mithilfe des festlegen, (MCI_SET) -Befehl mit der Kennzeichnung "Uhr 0" (Null) festgelegt wird.
Beim Ausgeben eines Wiedergabebefehls (MCI_PLAY), Datensatz (MCI_RECORD) oder Suchen (MCI_SEEK) können Sie angeben, wann der Befehl ausgeführt werden soll. Die Merkmale der verwendeten VCRs bestimmen, wann die einzelnen VCR gestartet werden sollen. Die Anzeigedauer muss die Menge der Vorrolldaten jedes Geräts berücksichtigen und die Zeit, die zum Abschließen der MCI-Befehle zum Einrichten der Bearbeitungssitzung erforderlich ist. Rufen Sie dazu die Uhrzeit ab, und fügen Sie ein Wartezeitintervall von 5 bis 10 Sekunden hinzu. (Das Warteintervall muss lang genug sein, damit die Vorabroll- und alle ausstehenden MCI-Befehle die Ausführung beenden können.)
Um sicherzustellen, dass die Wartezeit lang genug ist, platzieren Sie den Datensatz Befehl zuletzt in Ihrer Anwendung, und überprüfen Sie die Zeit unmittelbar davor. Wenn das Intervall zu kurz ist, starten Sie die wiedergabe Befehl neu. Alternativ können Sie die Zeit unmittelbar nach dem letzten Befehl des Skripts überprüfen, um sicherzustellen, dass genügend Zeit zum Senden und Abschließen aller Befehle vorhanden ist.