Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
[Funkcja skojarzona z tą stroną, windows Media Format 11 SDK, jest starszą funkcją. Został zastąpiony przez Source Reader i Sink Writer. czytnika źródeł i składników zapisywania 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 danych 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.]
Strumienie wideo są bardziej elastyczne w konfiguracji niż strumienie audio. Dzieje się tak, ponieważ właściwości ramek tworzących film wideo mogą się znacznie różnić w zależności od jednego pliku do drugiego. Podczas pobierania formatu kodera dla używanego kodera, trzeba ustawić następujące wartości w obiektach konfiguracji strumienia wideo.
| Wartość | Opis |
|---|---|
| Szybkość bitów | Wywołaj IWMStreamConfig::SetBitrate, aby ustawić żądaną wartość. Koder wideo spróbuje skompresować nośnik w celu spełnienia Twoich specyfikacji. Jeśli wartości są zbyt niskie, wynikowe skompresowane wideo będzie bardzo niskiej jakości. |
| Okno buforu | Wywołaj IWMStreamConfig::SetBufferWindow, aby ustawić żądaną wartość. Koder wideo spróbuje skompresować nośnik w celu spełnienia Twoich specyfikacji. Jeśli wartości są zbyt niskie, wynikowy skompresowany film wideo będzie znacznie pogorszony. |
| WMVIDEOINFOHEADER.rcSource | Lewy górny róg musi mieć wartość 0,0. Prawy dolny róg musi być ustawiony na wymiary ramki. Na przykład w strumieniu 640x480 te ustawienia to 0,0,640,480. |
| WMVIDEOINFOHEADER.rcTarget | Musi być zgodna z rcSource. |
| WMVIDEOINFOHEADER.dwBitRate | Musi być zgodna z szybkością transmisji bitów ustawioną dla strumienia. |
| WMVIDEOINFOHEADER.AvgTimePerFrame | Ustaw przybliżony czas na ramkę. |
| BITMAPINFOHEADER.biWidth | Ustaw na szerokość w pikselach żądanego rozmiaru ramki. |
| BITMAPINFOHEADER.biHeight | Ustaw wartość na wysokość w pikselach żądanego rozmiaru ramki. |
Zawartość wideo nie jest odtwarzana poprawnie, chyba że jest zakodowana w rozmiarze będącym wielokrotnością czterech zarówno dla szerokości, jak i wysokości. Wyjątkiem jest nieskompresowane wideo w formacie RGB, które może mieć dowolny rozmiar. Jeśli spróbujesz ustawić rozmiar, który nie jest wielokrotnością czterech, pisarz zwróci jeden z następujących błędów:
- NIEPOPRAWNY_FORMAT_WEJŚCIA
- NS_E_INVALID_OUTPUT_FORMAT - Nieprawidłowy format wyjściowy
- NS_E_BŁĘDNYPROFIL
Jeśli używasz kodowania zmiennej szybkości bitów, może być konieczne wprowadzenie innych korekt. Aby uzyskać więcej informacji, zobacz Konfigurowanie strumieni VBR.
Niektóre koderi wideo systemu Windows Media obsługują wiele poziomów złożoności. Poziomy złożoności określają algorytmy, których kodek będzie używał podczas kodowania strumienia wideo. Użycie wysokiego poziomu złożoności wymaga większej mocy obliczeniowej do kodowania i dekodowania.
Każdy koder kodujący obsługujący ustawienia złożoności uwidacznia następujące ustawienia, które można pobrać za pomocą metody IWMCodecInfo3::GetCodecProp.
| Ustawienie | Opis |
|---|---|
| g_wszComplexityMax | Maksymalny poziom jakości obsługiwany przez kodek. |
| g_wszComplexityOffline | Sugerowany poziom jakości odtwarzania w trybie offline. |
| g_wszComplexityLive | Sugerowany poziom jakości odtwarzania strumieniowego. |
Aby ustawić złożoność strumienia wideo w profilu, użyj metody IWMPropertyVault::SetProperty, korzystając z właściwości g_wszComplexity. Ustawiona wartość musi być mniejsza lub równa maksymalnej obsługiwanej złożoności kodu.
Tematy pokrewne
-
konfiguracja wspólna dla wszystkich strumieni