Udostępnij za pośrednictwem


Uzyskiwanie dobrych wyników za pomocą kodeka ekranu Windows Media Video 9

[Funkcja skojarzona z tą stroną, windows Media Format 11 SDK, jest starszą funkcją. Został zastąpiony przez Source Reader i Sink Writer. Odczyt źródła i zapis ujścia zostały zoptymalizowane pod kątem systemów Windows 10 i Windows 11. Firma Microsoft zdecydowanie zaleca, aby nowy kod używał czytnika źródeł i modułu zapisywania ujścia zamiast zestawu SDK windows Media Format 11, 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.]

Kodek ekranu Windows Media Video 9 został zaprojektowany do tworzenia wysoce skompresowanego wideo do przechwytywania ekranu. Ze względu na to, że większość potrzeb przechwytywania ekranu obejmuje dość proste i statyczne obrazy, wysoki poziom kompresji uzyskany zwykle nie oznacza wielkiego poświęcenia w jakości obrazu. Jednak każde przechwytywanie ekranu jest inne, a wynikowa jakość obrazu może się znacznie różnić w zależności od okoliczności.

Najskuteczniejszym sposobem ustalenia ustawień profilu sesji kodowania ekranu jest zakodowanie pliku testowego przy użyciu strumienia zmiennej przepływności bazującego na jakości. Ustaw jakość na wartość, którą chcesz, i zakoduj przechwytywanie ekranu tak, jakby nagrywano ostateczny plik. Gdy plik zostanie zapisany, odtwórz go przy użyciu obiektu czytnika asynchronicznego, wykonując regularne wywołania IWMReaderAdvanced::GetStatistics. Monitorując wartość dwBandwidth składowej struktury WM_READER_STATISTICS dla każdego wywołania, można określić przybliżoną szybkość bitów wymaganą do osiągnięcia żądanej jakości. Następnie można użyć tej szybkości bitów do kodowania stałego bitrate’u.

Jeśli okaże się, że wymagana jakość wymaga wyższej szybkości bitów niż w scenariuszu dostarczania, możesz wypróbować następujące techniki, aby uzyskać większą wydajność z kodera.

  • Użyj mniejszej rozdzielczości na potrzeby przechwytywania ekranu. Przechwytywanie większej rozdzielczości ekranu, niż potrzebujesz, może również spowodować zamieszanie dla osoby przeglądającej, przedstawiając więcej informacji niż jest to potrzebne.
  • Użyj mniejszej liczby grafiki w przechwytywaniu ekranu. Kodek ekranu Windows Media Video 9 jest zoptymalizowany do kodowania elementów pierwotnych systemu Windows i tekstu z wysoką jakością. Zwykle problemy występują z powodu grafiki bitmapowej, która często zawiera tysiące pojedynczych kolorów. Mniejsza liczba map bitowych, które znajdują się na ekranie podczas przechwytywania, tym lepsze będą wyniki. Jeśli nie możesz wyeliminować grafiki z przechwytywania ekranu, istnieje kilka sposobów, aby zminimalizować wpływ mapy bitowej na jakość obrazu:
    • Zmniejsz rozmiar grafiki.
    • Zmniejsz liczbę poszczególnych grafik wyświetlanych jednocześnie na ekranie.
    • Zmniejsz ilość ruchu grafiki. Jeśli na przykład grafika znajduje się w oknie, zachowaj okno tak nieruchomo, jak to możliwe.
    • Unikaj przesuwania wskaźnika myszy na grafikę lub przeciągania okien lub innych elementów na grafice.
  • Użyj wolniejszej szybkości klatek. Przechwytywanie ekranu może być często skuteczne przy bardzo niskich szybkościach klatek na sekundę (czasami nawet 4 lub 5 ramek na sekundę).
  • Zmniejsz szybkość bitów towarzyszącego dźwięku.

Ponadto kodek nie obsługuje zmiany rozmiaru prostokąta wideo. Innymi słowy, jeśli spróbujesz użyć kodera do kodowania ekranu 800 x 600 w dół do prostokąta wideo 640 x 480, wynikowy film będzie miał znaczące artefakty, które mogą sprawić, że większość tekstu na ekranie będzie nieczytelna.

Konfigurowanie strumieni przechwytywania ekranu

Konfigurowanie strumieni