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.
Procesor wideo MFT to transformacja platformy Microsoft Media Foundation (MFT), która wykonuje konwersję przestrzeni kolorów, mapowanie tonów, zmienianie rozmiaru wideo, deinterlacing, konwersję szybkości klatek, rotację, przycinanie, rozpakowywanie widoku przestrzennego po lewej i prawej stronie, dublowanie, przetwarzanie efektu renderowania i mapowanie sfer.
identyfikator klasy
CLSID_VideoProcessorMFT
Interfejsy
- IMFRealTimeClientEx
- IMFTransform
- IMFVideoProcessorControl
- IMFVideoProcessorControl2
- IMFVideoProcessorControl3
- IMFVideoRendererEffectControl
Formaty wejściowe
Następujące formaty są obsługiwanymi wartościami dla wartości MF_MT_SUBTYPE typu nośnika ustawionego za pośrednictwem funkcji IMFTransform::SetInputType
- MFVideoFormat_ABGR32
- MFVideoFormat_ARGB32
- MFVideoFormat_AYUV
- MFVideoFormat_I420
- MFVideoFormat_I422
- MFVideoFormat_I444
- MFVideoFormat_IYUV
- MFVideoFormat_NV11
- MFVideoFormat_NV12
- MFVideoFormat_RGB24
- MFVideoFormat_RGB32
- MFVideoFormat_RGB555
- MFVideoFormat_RGB565
- MFVideoFormat_RGB8
- MFVideoFormat_UYVY
- MFVideoFormat_v410
- MFVideoFormat_Y216
- MFVideoFormat_Y41P
- MFVideoFormat_Y41T
- MFVideoFormat_Y42T
- MFVideoFormat_YUY2
- MFVideoFormat_YV12
- MFVideoFormat_YVYU
- MFVideoFormat_P010
- MFVideoFormat_P016
- MFVideoFormat_A16B16G16R16F
- MFVideoFormat_A2R10G10B10
- MFVideoFormat_Y210
- MFVideoFormat_Y410
- MFVideoFormat_Y416
- MFVideoFormat_L8
- MFVideoFormat_L16
- MFVideoFormat_D16
Formaty danych wyjściowych
Następujące formaty są obsługiwanymi wartościami dla wartości MF_MT_SUBTYPE typu nośnika ustawionego za pośrednictwem funkcji IMFTransform::SetOutputType
- MFVideoFormat_ARGB32
- MFVideoFormat_AYUV
- MFVideoFormat_I420
- MFVideoFormat_I422
- MFVideoFormat_I444
- MFVideoFormat_IYUV
- MFVideoFormat_NV12
- MFVideoFormat_RGB24
- MFVideoFormat_RGB32
- MFVideoFormat_RGB555
- MFVideoFormat_RGB565
- MFVideoFormat_UYVY
- MFVideoFormat_Y216
- MFVideoFormat_YUY2
- MFVideoFormat_YV12
- MFVideoFormat_P010
- MFVideoFormat_P016
- MFVideoFormat_A16B16G16R16F
- MFVideoFormat_A2R10G10B10
- MFVideoFormat_Y210
- MFVideoFormat_Y410
- MFVideoFormat_Y416
Nie każda kombinacja formatów wejściowych i wyjściowych jest obsługiwana. Aby sprawdzić, czy konwersja jest obsługiwana, ustaw typ danych wejściowych, a następnie wywołaj metodę IMFTransform::GetOutputAvailableType.
Aby uzyskać więcej informacji na temat tych formatów, zobacz Video Subtype GUIDs (Identyfikatory GUID podtypu wideo).
Przekształcenia przestrzeni kolorów
Dla typów wejściowych lub wyjściowych można ustawić następujące atrybuty, aby zmienić przestrzeń kolorów zawartości:
- MF_MT_VIDEO_PRIMARIES
- MF_MT_TRANSFER_FUNCTION
- MF_MT_YUV_MATRIX
- MF_MT_VIDEO_CHROMA_SITING
- MF_MT_VIDEO_NOMINAL_RANGE
- MF_MT_MAX_MASTERING_LUMINANCE
- MF_MT_MAX_LUMINANCE_LEVEL
- MF_MT_CUSTOM_VIDEO_PRIMARIES
- MF_MT_PALETTE
Przekształcenia obrazów
Następujące atrybuty można ustawić na typach danych wejściowych lub wyjściowych w celu wykonania przekształceń przestrzennych w filmie wideo:
- MF_MT_PIXEL_ASPECT_RATIO
- MF_MT_VIDEO_ROTATION
- MF_MT_PAN_SCAN_APERTURE
- MF_MT_GEOMETRIC_APERTURE
- MF_MT_MINIMUM_DISPLAY_APERTURE
- MF_MT_VIDEO_3D
- MF_MT_VIDEO_3D_FORMAT
Przekształcenia szybkości ramek
Następujące atrybuty można ustawić na typach danych wejściowych lub wyjściowych, aby wykonywać przekształcenia czasowe na wideo:
- MF_MT_INTERLACE_MODE
- MF_MT_FRAME_RATE
Należy pamiętać, że jeśli MF_XVP_DISABLE_FRC jest ustawiona na wartość TRUE, konwersja współczynnika klatek jest wyłączona, ale nadal będzie wykonywane filtrowanie.
Przekształć atrybuty
Następujące atrybuty można ustawić w przekształceniu przy użyciu funkcji IMFTransform::GetAttributes:
- MF_XVP_DISABLE_FRC
- MF_XVP_CALLER_ALLOCATES_OUTPUT
- MF_LOW_LATENCY
- MF_XVP_SAMPLE_LOCK_TIMEOUT
- MF_ENABLE_3DVIDEO_OUTPUT
- MF_VIDEO_PROCESSOR_ALGORITHM
Uwagi
Wystąpienie procesora wideo można utworzyć w jeden z następujących sposobów:
- Wywołując MFTEnumEx. Procesor wideo jest zarejestrowany w kategorii MFT_CATEGORY_VIDEO_PROCESSOR .
- Wywołując funkcję COM CoCreateInstance przekazując ją CLSID_VideoProcessorMFT CLSID.
Poniższe uwagi dotyczą pracy z prostokątami źródłowymi i prostokątami docelowymi w MFT procesora wideo. Prostokąty źródłowe i docelowe są ustawiane za pomocą kontrolek IMFVideoProcessorControl::SetDestinationRectangle i SetSourceRectangle , a czasami z IMFMediaEngineEx::UpdateVideoStream.
- Prostokąt źródłowy powinien być wyrównany i zaokrąglony w celu dopasowania do wymagań formatu koloru ramki wprowadzonej do procesora wideo. Jest to ważne, ponieważ formaty, takie jak 420 i 422, mają wymagania dotyczące wymiarów i przesunięć, do których można utworzyć i uzyskać dostęp. Na przykład prostokąt źródłowy {1, 0, 319, 240} (lewy, górny, prawy, dolny) zostanie zaokrąglony do {2, 0, 320, 240}, gdy format wejściowy wynosi 420.
- Zarówno docelowy, jak i źródłowy prostokąt będą zawsze zaciśnięte, aby mieściły się wewnątrz odpowiednich ramek — prostokąt źródłowy do ramki źródłowej i prostokąt docelowy do ramki docelowej. Oznacza to, że wartości ujemne nie mają znaczenia — będą zawsze zaciskane do 0.
- Prostokąt źródłowy znajduje się w układzie współrzędnych ramki docelowej, pomniejszonego o dowolny prostokąt docelowy. Oznacza to, że przekształcenia, takie jak rotacja, są "cofnięte" na prostokątze źródłowym. W związku z tym nie musisz wiedzieć, czy wideo zostało obrócone lub rozpakowane 3D. Można na przykład narysować prostokąt u góry tagu wideo, użyć współrzędnych względnych (względem tagu wideo), znormalizować je (zakres od 0 do 1) i przekazać je jako prostokąt źródłowy i powinny działać zgodnie z oczekiwaniami, nawet jeśli wideo jest obracane.
Procesor wideo obsługuje przyspieszone przetwarzanie wideo z procesorem GPU przy użyciu usługi Microsoft Direct3D 11 lub Direct3D 12. Aby uzyskać więcej informacji, zobacz MF_SA_D3D11_AWARE i MF_SA_D3D12_AWARE.
Procesor wideo jest używany jako konwerter frontonu do renderowania wideo podczas korzystania z SVR, który jest udostępniany przez składniki MediaPlayer i IMFMediaEngine . Dekodatory, wtyczki lub źródła używane przez jeden z tych składników
Efekty renderowania
Procesor wideo MFT jest składnikiem hosta dla efektów renderowania. Efekty renderowania umożliwiają aplikacjom wtyczkę do normalnego procesu przekształcania i renderowania wideo. W przypadku typowych aplikacji wystarczy wtyczka wideo (zobacz : IMFMediaEngineEx::InsertVideoEffect). Jednak niektóre scenariusze wymagają dodatkowych informacji na temat dokładnych warunków renderowania filmu wideo. Rozważ efekt renderowania w następujących sytuacjach:
- Wtyczka musi wiedzieć, że rozdzielczość wideo jest renderowana pod adresem (np. w celu wykonania specjalnej operacji skalowania, takiej jak super rozdzielczość)
- Wtyczka musi wiedzieć o właściwościach wyświetlania, na których jest renderowany film wideo (np. w celu wykonania dokładnego mapowania tonu)
- Wtyczka musi znać dokładnie ostateczny format danych wyjściowych przedstawionego wideo
Aby załadować efekt renderatora, skonfiguruj atrybut MF_MT_VIDEO_RENDERER_EXTENSION_PROFILE dla typu wejściowego procesora wideo MFT.
Wideo stereoskopowe
Procesor wideo obsługuje operację rozpakowywania widoku na klatkach wideo 3D:
Jeśli ramka wejściowa zawiera dwa widoki pakowane w tej samej ramce, procesor wideo może podzielić widoki na oddzielne lub wyodrębnić widok podstawowy i odrzucić drugi widok. Aby włączyć rozpakowywanie widoku, ustaw atrybut MF_ENABLE_3DVIDEO_OUTPUT na MF3DVideoOutputType_Stereo lub MF3DVideoOutputType_BaseView.
Wymagania
| Wymaganie | Wartość |
|---|---|
| Nagłówek |
|
Zobacz także