Udostępnij przez


Przykład DVApp

[Funkcja skojarzona z tą stroną, DirectShow, jest starszą funkcją. To zostało zastąpione przez MediaPlayer, IMFMediaEnginei Audio/Video Capture w Media Foundation. Te funkcje zostały zoptymalizowane pod kątem systemów Windows 10 i Windows 11. Firma Microsoft zdecydowanie zaleca, aby nowy kod używał MediaPlayer, IMFMediaEngine i Audio/Video Capture w ramach platformy Media Foundation zamiast DirectShow, jeśli 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.]

Opis

Aplikacja do przechwytywania cyfrowego wideo (DV).

W tym przykładzie pokazano, jak utworzyć różne typy wykresów filtrów do sterowania kamerami DV. Przedstawiono również sposób przechwytywania, wyświetlania podglądu, przesyłania i sterowania urządzeniami za pomocą kamery DV.

Użycie

Aplikacja DVApp obsługuje następujące tryby:

  • Podgląd: przesyła DV z kamery wideo do okna wideo.
  • DV do pliku typu 1: przechwytuje dane DV z kamery do pliku DV typu 1.
  • Typ-1 plik do DV: przesyła dane z pliku DV typu 1 do kamery.
  • DV do pliku typu 2: przechwytuje dane DV z kamery do pliku DV typu 2.
  • Typ-2 plik do DV: przesyła dane z pliku DV typu 2 do kamery.

Tryby przechwytywania i przesyłania również umożliwiają podgląd. Każdy z tych trybów ma również opcję Brak podglądu, która wyłącza podgląd. Przechwytywanie bez podglądu jest bardziej wydajne i może zmniejszyć liczbę zgubionych klatek.

Aplikacja jest uruchamiana w trybie podglądu. Aby wybrać inny tryb, wybierz tryb z menu Graph Mode. Dla każdego trybu DVApp tworzy graf filtru, który obsługuje funkcjonalność tego trybu. Aby zapisać graf jako plik GraphEdit (.grf), wybierz pozycję Zapisz graf do pliku z menu Plik. Zamknij aplikację DVApp przed otwarciem pliku w narzędziu GraphEdit.

Aby przechwycić plik:

  1. W menu Plik wybierz Ustaw plik wyjściowy i wprowadź nazwę pliku.
  2. W menu Tryb Wykresu wybierz tryb DV do Pliku (typ 1 lub typ 2, z podglądem lub bez).
  3. Kliknij pozycję rekordu.
  4. Jeśli kamera jest w trybie VTR, kliknij przycisk Odtwórz.
  5. Aby zatrzymać przechwytywanie, kliknij Zatrzymaj.

Aby przesłać z pliku do kamery:

  1. W menu File kliknij Ustaw plik wejściowy i wybierz plik DV. Plik musi być zgodny z wybranym trybem (typ 1 lub typ 2).
  2. W menu trybu wykresu wybierz tryb Plik do DV (typ 1 lub typ 2, z podglądem lub bez).
  3. Kliknij Play.
  4. Aby zarejestrować dane na taśmie, kliknij pozycję Rekord.
  5. Aby zatrzymać przesyłanie, kliknij przycisk Zatrzymaj.

Jeśli kamera jest w trybie VTR, użytkownik może kontrolować mechanizm transportu za pomocą przycisków WCR w stylu aplikacji. Aby wyszukać taśmę, wprowadź docelowy kod czasu i kliknij przycisk wyszukiwania.

Aby ograniczyć ilość danych przechwytywanych przez aplikację, wybierz rozmiar przechwytywania z menu plik.

Aby sprawdzić format taśmy (NTSC lub PAL), wybierz Sprawdź taśmę z menu Opcje.

Aby zmienić rozmiar okna podglądu, wybierz pozycję Zmień rozmiar dekodowania z menu Opcje.

Uwagi dotyczące programowania

Głównym celem tej aplikacji jest przedstawienie sposobu budowania różnych grafów do przechwytywania i przesyłania DV.

Przybycie i Usunięcie Urządzenia

Aplikacja obsługuje przybycie i usuwanie urządzeń przy użyciu dwóch różnych technik. W przypadku przybycia urządzenia pętla komunikatów aplikacji odpowiada na komunikaty WM_DEVICECHANGE. W przypadku usunięcia urządzenia aplikacja odpowiada na EC_DEVICE_LOST zdarzenia z menedżera grafu filtrów. Obie metody działają, chociaż zdarzenie EC_DEVICE_LOST zależy od istnienia urządzenia w wykresie filtru.

Aplikacja obsługuje tylko jedno urządzenie naraz. Jeśli bieżące urządzenie zostanie usunięte, aplikacja szuka innego urządzenia DV w systemie.

W niektórych kamerach DV użytkownik musi wyłączyć urządzenie podczas przełączania go między trybem aparatu a trybem VTR, co powoduje wyświetlenie komunikatu o utracie połączenia z urządzeniem. Aplikacja odpowiada, włączając lub wyłączając odpowiednie polecenia menu. Jeśli jednak użytkownik szybko przełącza się między trybami, kamera może nie wygenerować komunikatu o utracie urządzenia. Możesz wymusić aktualizację menu, wybierając tryb odświeżania z menu Opcje. Niektóre kamery DV mogą przełączać tryby bez wyłączania, ale wysyłają komunikat o utracie urządzenia tylko wtedy, gdy przełączają się w tryb VTR.

Kontrola urządzenia

Funkcjonalność przycisku Play i Record zależy od bieżącego trybu:

  • Podgląd: wykres filtru jest uruchamiany automatycznie. Przycisk Play rozpoczyna transport.
  • Przechwytywanie do pliku: przycisk Nagrywanie uruchamia graf, a przycisk Odtwarzanie włącza transport.
  • Przesyłaj do urządzenia: przycisk odtwarzania uruchamia graf, a przycisk nagrywania uruchamia transport.

Przykładowa aplikacja nie wykonuje precyzyjnego przechwytywania ramek. W różnych punktach aplikacja wywołuje funkcję Sleep, aby poczekać na odpowiedź urządzenia. Nowsze kamery DV wysyłają powiadomienie po zmianie stanu urządzenia. Starsze urządzenia mogą nie obsługiwać powiadomień; na potrzeby przykładu wywoływanie Sleep jest prostszym rozwiązaniem.

Pobieranie przykładu

Aby pobrać przykłady zestawu SDK DirectShow, zainstaluj najnowszą wersję zestawu Windows SDK.

Ten przykład jest instalowany w następującej ścieżce: [SDK Root]\Samples\Multimedia\DirectShow\Capture\DVApp.

sterowanie kamery DV

Wideo cyfrowe w DirectShow

Przykłady DirectShow