Usługi VCR
[Funkcja skojarzona z tą stroną, MCI, jest starszą funkcją. Został zastąpiony przez MediaPlayer. MediaPlayer został zoptymalizowany pod kątem systemów Windows 10 i Windows 11. Firma Microsoft zdecydowanie zaleca, aby nowy kod używał MediaPlayer zamiast MCI, jeśli jest to możliwe. Firma Microsoft sugeruje, że istniejący kod, który używa starszych interfejsów API, należy przepisać go do korzystania z nowych interfejsów API, jeśli to możliwe.]
System Windows udostępnia usługi VCR za pośrednictwem sterownika urządzenia opartego na zestawie poleceń MCI dla vcRs. W tej sekcji opisano sterownik MCI Video System Control Architecture (VISCA) i wyjaśniono, jak używać go do kontrolowania rejestru wirtualnego.
Typ urządzenia vcr kontroluje rejestry VCR. Aby uzyskać listę poleceń MCI rozpoznawanych przez urządzenia VCR, zobacz zestaw poleceń usługi VCR.
Sterownik MCI VISCA
Sterownik MCI VISCA kontroluje procesory VCR zgodne z systemem Sony VISCA, takie jak CVD-1000 VDeck. Sterownik VISCA steruje transportem taśm, tunerami kanałów oraz kanałami wejściowymi i wyjściowymi VCR.
Wyszukiwanie i pozycjonowanie za pomocą wirtualnegocra
Sterownik VISCA używa dwóch metod do śledzenia ruchu taśmy wideo w transporcie taśmY VCR: informacji o kodzie czasu i liczników taśm . Informacje o kodzie czasowym to informacje o chronometrażu, które zostały zarejestrowane na taśmie wideo. Większość vcRs zezwala na rejestrowanie kodów czasowych bez niszczenia ścieżek audio i wideo. Liczniki taśm szacują ilość taśmy wideo, która przemieszcza się obok głowicy taśmy wideo w celu uzyskania pozycji.
Zarówno informacje o kodzie czasowym, jak i liczniki taśm rosną, gdy taśma wideo przechodzi od początku do końca. Ze względu na jego dokładność używanie informacji o kodzie czasowym do pozycjonowania taśmy wideo jest prawie zawsze preferowane do używania liczników taśm.
Flagi poleceń MCI służące do określania informacji o pozycjonowaniu są wyrażane jako zależności czasowe: "format czasu", "duration", "from", "to" i "seek". (Ponadto stan polecenie "position" zwraca wartość czasu w bieżącym formacie czasu).
Sterownik VISCA używa ustawić "tryb czasu" polecenie, aby wybrać typ pozycjonowania do użycia z taśmą wideo. Gdy tryb czasu jest ustawiony na "kod czasu", stan "położenie" i ustawić polecenia "format czasu" używają kodu czasowego na taśmie wideo. Gdy tryb czasu jest ustawiony na "licznik", stan "położenie" i ustawić polecenia "format czasu" używają liczników.
Aplikacja może ustawić tryb czasu na "wykrycie", jeśli nie ma znaczenia, że mogą istnieć dwa źródła informacji o pozycji. W trybie wykrywania sterownik VISCA używa informacji o kodzie czasowym do pozycjonowania, gdy wystąpi dowolny z następujących warunków:
- Informacje o kodzie czasowym są obecne po otwarciu sterownika.
- Zmieniasz taśmę wideo z zestawem "door open" polecenie i informacje o kodzie czasowym są obecne na taśmie wideo.
- ustawić polecenie "tryb czasu" jest ponownie uruchamiane.
Jeśli nie można odnaleźć informacji o kodzie czasu, sterownik używa liczników taśm.
Aby określić bieżącą metodę pozycjonowania, wydaj stan polecenie "typ czasu", które zwraca "kod czasu" lub "licznik". Można również zidentyfikować bieżący tryb pozycjonowania przy użyciu stanu "tryb czasu", który zwraca wartość "timecode", "counter" lub "detect".
Stan polecenie "counter" pobiera bieżącą wartość licznika taśmy, niezależnie od bieżącej metody pozycjonowania; Można jednak użyć tego licznika tylko z ustawić "counter" polecenie.
Sterownik VISCA może pobrać natywny format kodu czasowego zarejestrowany na taśmie wideo przy użyciu stanu "typ kodu czasowego" i stan polecenia "szybkość klatek". Jeśli na przykład typ kodu czasowego to "smpte", a szybkość klatek wynosi 25, natywny format kodu czasowego zarejestrowany na taśmie wideo to SMPTE 25.
Sterownik VISCA może również pobrać rozdzielczość licznika przy użyciu stan "counter resolution" polecenie, które zwraca "sekundy" lub "ramki". Format licznika może być nadal ustawiony na SMPTE 30, ale zwracana wartość zwraca tylko ramkę 0. Jeśli bieżący typ godziny jest licznikiem, to rozwiązanie ma zastosowanie również do wartości zwróconej przez stan "pozycja".
Przechwytywanie ramek
Polecenia przechwytywania ramek udostępniają obrazy dla urządzenia przechwytywania ramek . Urządzenie przechwytywania ramek to oddzielny element sprzętu, który może odczytywać i przechowywać obraz wideo. Sterownik VISCA obsługuje blokowanie (MCI_FREEZE) polecenie stabilizacji obrazu do przechwytywania. Ponadto polecenie odmrozić (MCI_UNFREEZE) może służyć do ponownego uruchomienia transportu taśm po zamrozić polecenia.
Polecenie freeze zapewnia wysokiej jakości, ustabilizowany, bazowy czasowy — poprawiony obraz dla urządzenia przechwytywania ramek. To polecenie istnieje, ponieważ urządzenie może nie zawsze dostarczać obraz wyjściowy o maksymalnej jakości podczas odtwarzania lub podczas wstrzymania; taki obraz wideo nie jest odpowiedni do przechwytywania.
Polecenie odmrozić odblokuje transport taśmy i wznowi tryb transportu przed zamrozić polecenia.
Gdy aplikacja musi zarejestrować obraz wideo w wirtualnym rejestrze wirtualnym, użyj polecenia zamrozić "input" lub polecenia cue (MCI_CUE) w celu zarejestrowania obrazu.
Wybieranie danych wejściowych
Sterownik VISCA obsługuje trzy typy danych wejściowych: wideo, audio i kod czasu. Wejścia wideo obejmują dwa standardowe kanały (linie 1 i 2), kanał SVideo, kanał pomocniczy i kanał z wewnętrznego tunera. Wejścia audio obejmują dwa standardowe kanały (linie 1 i 2) i kanał z wewnętrznego tunera. Dane wejściowe kodu czasowego są wewnętrzne dla usługi VCR.
Normalne dane wyjściowe zawierają aktualnie wybrane dane wejściowe, gdy dysk VCR jest rejestrowany lub gdy transport taśmy jest zatrzymany, a także zawierają zawartość taśmy wideo podczas odtwarzania lub wstrzymania transportu taśmy. Monitorowane dane wyjściowe zawierają te same informacje co normalne dane wyjściowe oraz bieżący kod czasu i informacje o kanale.
Zakładając, że odpowiednie dane wejściowe zewnętrzne są połączone z wirtualnymcrem i decydujesz, co chcesz zarejestrować, możesz wybrać dane wejściowe do zarejestrowania. Na przykład, aby nagrać lub wyświetlić z wideo "svideo" i "wiersz 1" wejścia audio, należy użyć setvideo (MCI_SETVIDEO) i setaudio (MCI_SETAUDIO) poleceń do wybrania tych źródeł wejściowych. Te opcje można zweryfikować za pomocą poleceniastanu(MCI_STATUS).
Domyślnie monitor pokazuje dokładnie to, co jest wyświetlane jako dane wyjściowe. Czasami jednak może być konieczne wyświetlenie jednego źródła podczas rejestrowania z innego. Jest to powszechna praktyka przy użyciu tunera. Na przykład możesz obejrzeć kanał 4 podczas rejestrowania kanału 7. W tym przypadku masz dwa wejścia tunera logicznego. Możesz skonfigurować wirtualny rekord wiersza polecenia przy użyciu następujących poleceń:
Aby przejrzeć jedno źródło podczas nagrywania z innego
- Użyj polecenia settuner (MCI_SETTUNER), aby wybrać kanały do oglądania i rejestrowania.
- Użyj setvideo polecenie, aby wybrać źródło nagrywania wideo.
- Użyj polecenia setaudio, aby wybrać źródło nagrywania audio.
- Użyj polecenia setvideo, aby skierować dane wejściowe wideo kanału 4 do monitorowanych danych wyjściowych, aby wyświetlić je na ekranie.
- Użyj polecenia setaudio, aby skierować dane wejściowe audio kanału 4 do monitorowanych danych wyjściowych w celu odtwarzania dźwięku.
- Sprawdź wybrane opcje przy użyciu poleceniastanu.
Sterownik VISCA obsługuje również specjalny typ danych wejściowych dla audio i wideo o nazwie wyciszanie. Wyciszenie umożliwia wybranie opcji "brak danych wejściowych", co jest przydatne podczas rejestrowania pustego sygnału.
Wybieranie ścieżek nagrywania
Istnieją trzy typy ścieżek nagrywania na taśmie wideo: wideo, audio i kod czasu. Masz tylko jedną ścieżkę wideo lub kod czasu, ale możesz użyć więcej niż jednej ścieżki dźwiękowej. Gdy to zrobisz, utwórz ścieżkę 1 główną ścieżkę dźwiękową.
Sterownik VISCA obsługuje dwa tryby operacyjne: montaż i wstawianie. W trybie zestawuwszystkie ścieżki są wybierane do zarejestrowania. W tryb wstawianiaścieżki można wybrać niezależnie do nagrywania. Większość vcR jest domyślnie w trybie asemblera. Użyj polecenia set (MCI_SET), aby zmienić te tryby.
Nagrywanie i edytowanie
Polecenie rekordu (MCI_RECORD) zapewnia proste rejestrowanie i jest dokładne do około 1 sekundy pozycji początkowej. Aby dokładniej zarejestrować zawartość wideo lub chcesz edytować zawartość wideo podczas jednoczesnego obsługi wielu talii, należy użyć polecenia cue (MCI_CUE).
Polecenie przygotowuje urządzenie do nagrywania lub odtwarzania. Użyj polecenia cue "input", aby przygotować urządzenie do nagrywania. Wymagane jest polecenie , ponieważ aplikacja musi wiedzieć, kiedy urządzenie jest gotowe do wykonania polecenia (i ponieważ przygotowanie do odtwarzania (MCI_PLAY) lub rekordu polecenia).
VCR przygotowuje się do nagrywania lub odtwarzania, starając się w punkcie, który jest bieżącą pozycją lub pozycją określoną przy użyciu sygnału "from". Jeśli flaga "preroll" jest określona z cue polecenia, jednak VCR umieszcza się w odległości przedrollu od punktu. Flaga "preroll" wskazuje również, że funkcja rejestrowania wirtualnego używa dowolnego odpowiedniego trybu edycji, dlatego ważne jest, aby używać "prerolla", szczególnie w przypadku najbardziej dokładnego rejestrowania. (Użyj możliwości (MCI_GETDEVCAPS) polecenia z flagą "can preroll", aby sprawdzić, czy tryb wstępny jest obsługiwany.
Nuta
W przypadku rejestrowania przy użyciu pozycji "from" i "to" pozycja "from" jest uwzględniona w edycji, a pozycja "do" nie jest.
Aby uzyskać więcej informacji na temat nagrywania, zobacz Recording.
Korzystanie z zegara podczas edycji
Podczas edytowania warto rejestrować segmenty z jednego rejestru wirtualnego do innego. Można rozpocząć nagrywanie w określonym czasie i pozycji na jednym wirtualnym rejestrze wirtualnym, podczas gdy inny rozpoczyna odtwarzanie w tym samym czasie i pozycji, określając akcję (odtwarzanie lub nagrywanie), pozycję i godzinę dla każdego wirtualnego rejestru.
Oba vcRs muszą używać tego samego zegara do edycji tego typu; zegar pomaga zsynchronizować oba urządzenia. Można określić, czy dwa procesory VCRs współużytkują ten sam zegar przy użyciu stanu (MCI_STATUS) polecenia z flagą "identyfikator zegara", aby wykonać zapytanie dotyczące każdego wirtualnego identyfikatora. Jeśli numery identyfikacyjne zwrócone przez stan polecenia są takie same, urządzenia używają tego samego zegara. Jako zasób współużytkowany zegar może być połączony z wieloma vcRs. Sterownik VISCA obsługuje tylko jeden udostępniony zegar.
Można również określić rozdzielczość zegara przy użyciu stanu "częstotliwość przyrostu zegara". To polecenie zwraca liczbę przyrostów, które zegar obsługuje na sekundę. Jeśli na przykład zegar jest aktualizowany co milisekundy, polecenie zwraca wartość 1000 jako częstotliwość przyrostu zegara. Zaletą użycia współczynnika przyrostu jest to, że szybkość jest wyrażona jako liczba całkowita; w przeciwnym razie przyrost będzie wartością zmiennoprzecinkową (pojedynczą lub podwójną precyzją). Jako liczba całkowita manipulowanie szybkością przyrostu jest prostą operacją i nie jest podatne na błędy zaokrąglania. Zegar można zresetować przy użyciu ustawić (MCI_SET) polecenia z flagą "clock 0" (zero).
Podczas wystawiania odtwarzania (MCI_PLAY), rekordu (MCI_RECORD) lub (MCI_SEEK) polecenie, można określić, kiedy polecenie ma zostać wykonane. Cechy używanych rekordów VCR określają, kiedy należy uruchomić poszczególne wirtualne rekordy cr. Czas musi uwzględniać ilość wstępnego wyrejestrowania każdego urządzenia i ilość czasu potrzebnego do ukończenia poleceń MCI używanych do konfigurowania sesji edycji. Aby to zrobić, pobierz czas zegara i dodaj interwał oczekiwania wynoszący od 5 do 10 sekund. (Interwał oczekiwania musi być wystarczająco długi, aby umożliwić wstępnemu wyrejestrowaniu i zakończeniu wykonywania wszystkich zaległych poleceń MCI).
Aby upewnić się, że okres oczekiwania jest wystarczająco długi, umieść rekord polecenie ostatnie w aplikacji i sprawdź czas bezpośrednio przed nim. Jeśli interwał jest zbyt krótki, uruchom ponownie polecenie odtwarzania. Alternatywnie możesz sprawdzić czas natychmiast po ostatnim poleceniu skryptu, aby sprawdzić, czy jest wystarczająco dużo czasu, aby wysłać i ukończyć wszystkie polecenia.