Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Der Videoprozessor MFT ist eine Microsoft Media Foundation-Transformation (MFT), die Farbraumkonvertierung, Tonabbildung, Videoanpassung, Deinterlacing, Bildfrequenzkonvertierung, Drehung, Zuschneiden, räumliche links und rechte Ansicht entpackt, Spiegelung, Renderereffektverarbeitung und Kugelzuordnung durchführt.
CLSID
CLSID_VideoProcessorMFT
Schnittstellen
- IMFRealTimeClientEx
- IMFTransform-
- IMFVideoProcessorControl-
- IMFVideoProcessorControl2-
- IMFVideoProcessorControl3
- IMFVideoRendererEffectControl
Eingabeformate
Die folgenden Formate werden werte für den MF_MT_SUBTYPE Wert des über IMFTransform::SetInputType festgelegten Medientyps unterstützt.
- 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
Ausgabeformate
Die folgenden Formate werden werte für den MF_MT_SUBTYPE Wert des über IMFTransform::SetOutputType festgelegten Medientyps unterstützt.
- 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
Nicht jede Kombination aus Eingabe- und Ausgabeformaten wird unterstützt. Um zu testen, ob eine Konvertierung unterstützt wird, legen Sie den Eingabetyp fest, und rufen Sie dann IMFTransform::GetOutputAvailableType auf.
Weitere Informationen zu diesen Formaten finden Sie unter "VideoUntertyp-GUIDs".
Farbraumtransformationen
Die folgenden Attribute können für die Eingabe- oder Ausgabetypen festgelegt werden, um den Farbraum des Inhalts zu ändern:
- 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
Bildtransformationen
Die folgenden Attribute können für die Eingabe- oder Ausgabetypen festgelegt werden, um räumliche Transformationen im Video auszuführen:
- 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
Framerate-Transformationen
Die folgenden Attribute können entweder für die Eingabe- oder Ausgabetypen festgelegt werden, um zeitliche Transformationen für das Video durchzuführen:
- MF_MT_INTERLACE_MODE
- MF_MT_FRAME_RATE
Beachten Sie, dass, wenn MF_XVP_DISABLE_FRC auf TRUE festgelegt ist, die Bildfrequenzkonvertierung deaktiviert ist, die Deinterlacierung jedoch weiterhin ausgeführt wird.
Transformationsattribute
Die folgenden Attribute können für die Transformation mithilfe von IMFTransform::GetAttributes festgelegt werden:
- 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
Bemerkungen
Eine Instanz des Videoprozessors kann auf eine der folgenden Arten erstellt werden:
- Durch Aufrufen von MFTEnumEx. Der Videoprozessor ist unter der Kategorie MFT_CATEGORY_VIDEO_PROCESSOR registriert.
- Durch Aufrufen der COM-Funktion CoCreateInstance wird die CLSID-CLSID_VideoProcessorMFT übergeben.
Die folgenden Hinweise beziehen sich auf das Arbeiten mit Quellrechtecken und Zielrechtecken im Videoprozessor-MFT. Quell- und Zielrechtecke werden mit IMFVideoProcessorControl::SetDestinationRectangle und SetSourceRectangle und manchmal mit IMFMediaEngineEx::UpdateVideoStream festgelegt.
- Das Quellrechteck sollte ausgerichtet und gerundet werden, um den Anforderungen des Farbformats des an den Videoprozessor eingegebenen Rahmens zu entsprechen. Dies ist wichtig, da Formate wie 420 und 422 Anforderungen an die Abmessungen und Offsets haben, die erstellt und darauf zugegriffen werden können. Beispielsweise wird ein Quellrechteck von {1, 0, 319, 240} (links, oben, rechts, unten) auf {2, 0, 320, 240} gerundet, wenn das Eingabeformat 420 ist.
- Sowohl das Ziel- als auch das Quellrechteck werden immer so eingeklemmt, dass es in ihre jeweiligen Frames passt – das Quellrechteck an den Quellframe und das Zielrechteck an den Zielrahmen. Dies bedeutet, dass negative Werte nicht sinnvoll sind – sie werden immer auf 0 geklemmt.
- Das Quellrechteck befindet sich im Koordinatensystem des Zielframes, abzüglich eines beliebigen Zielrechtecks. Dies bedeutet, dass Transformationen wie Drehungen im Quellrechteck "rückgängig gemacht" werden. Daher müssen Sie nicht wissen, ob das Video gedreht oder 3D entpackt wurde. Sie können beispielsweise ein Rechteck über dem Videotag zeichnen, die relativen Koordinaten (relativ zum Videotag) nehmen, sie normalisieren (Bereich 0 bis 1) und als Quellrechteck übergeben und wie erwartet funktionieren, auch wenn das Video gedreht wird.
Der Videoprozessor unterstützt gpubeschleunigte Videoverarbeitung mit Microsoft Direct3D 11 oder Direct3D 12. Weitere Informationen finden Sie unter MF_SA_D3D11_AWARE und MF_SA_D3D12_AWARE.
Der Videoprozessor wird als Front-End-Konverter für das Videorendering bei Verwendung von SVR verwendet, der von den Komponenten MediaPlayer und IMFMediaEngine verfügbar gemacht wird. Decoder, Plug-Ins oder Quellen, die von einer dieser Komponenten verwendet werden
Renderereffekte
Die Videoprozessor-MFT ist die Hostkomponente für Renderereffekte. Renderereffekte ermöglichen Anwendungen das Plug-In in den normalen Videotransformations- und Renderingprozess. Für typische Anwendungen reicht ein Video-Plug-In (siehe : IMFMediaEngineEx::InsertVideoEffect) aus. Einige Szenarien erfordern jedoch weitere Informationen zu den genauen Bedingungen, in denen ein Video gerendert wird. Betrachten Sie einen Renderereffekt für die folgenden Situationen:
- Das Plug-In muss die Auflösung kennen, bei der das Video gerendert wird (z. B. um einen speziellen Skalierungsvorgang wie Superauflösung durchzuführen)
- Das Plug-In muss die Eigenschaften der Anzeige kennen, auf der das Video gerendert wird (z. B. um eine genaue Tonzuordnung durchzuführen)
- Das Plug-In muss genau das endgültige Ausgabeformat des präsentierten Videos kennen.
Um einen Renderereffekt zu laden, konfigurieren Sie das MF_MT_VIDEO_RENDERER_EXTENSION_PROFILE Attribut für den Eingabetyp des Videoprozessor-MFT.
Stereoskopisches Video
Der Videoprozessor unterstützt den Entpackungsvorgang der Ansicht auf 3D-Videoframes:
Wenn der Eingabeframe zwei Ansichten enthält, die in demselben Frame verpackt sind, kann der Videoprozessor die Ansichten in separate Puffer aufteilen oder die Basisansicht extrahieren und die zweite Ansicht verwerfen. Um das Entpacken der Ansicht zu aktivieren, legen Sie das attribut MF_ENABLE_3DVIDEO_OUTPUT auf MF3DVideoOutputType_Stereo oder MF3DVideoOutputType_BaseView fest.
Anforderungen
| Anforderung | Wert |
|---|---|
| Kopfzeile |
|
Siehe auch