H.264-Videodecoder
Der Media Foundation H.264-Videodecoder ist eine Media Foundation Transformation , die die Decodierung von Profilen Baseline, Main und High bis Ebene 5.1 unterstützt.
Der H.264-Videodecoder macht die folgenden Schnittstellen verfügbar.
- ICodecAPI (unterstützt in Windows 8)
- IMFGetService
- IMFQualityAdvise
- IMFQualityAdvise2
- IMFRateControl
- IMFRateSupport
- IMFRealTimeClient
- IMFTransform
Führen Sie eine der folgenden Schritte aus, um eine instance des Decoders zu erstellen:
- Rufen Sie die Funktion MFTEnum oder MFTEnumEx auf.
- Rufen Sie CoCreateInstance auf. Die CLSID für den Decoder ist CLSID_CMSH264DecoderMFT, deklariert in wmcodecdsp.h.
Eingabetypen
Der Eingabetyp muss mindestens die folgenden beiden Attribute enthalten:
attribute | BESCHREIBUNG |
---|---|
MF_MT_MAJOR_TYPE | MFMediaType_Video |
MF_MT_SUBTYPE | MFVideoFormat_H264 oder MFVideoFormat_H264_ES |
Wenn der Eingabetyp nur diese beiden Attribute enthält, bietet der Decoder einen Standardausgabetyp, der als Platzhalter fungiert. Wenn der Decoder genügend Eingabebeispiele empfängt, um einen Ausgabeframe zu erzeugen, signalisiert er eine Formatänderung, indem er MF_E_TRANSFORM_STREAM_CHANGE von IMFTransform::P rocessOutput zurückgibt. Ausführliche Informationen zum Behandeln von Formatänderungen finden Sie in der ProcessOutput-Dokumentation .
Um eine anfängliche Formatänderung zu vermeiden, geben Sie im Eingabetyp so viele Informationen wie möglich an, einschließlich:
attribute | BESCHREIBUNG |
---|---|
MF_MT_FRAME_RATE | Bildrate. |
MF_MT_FRAME_SIZE | Rahmendimensionen. |
MF_MT_INTERLACE_MODE | Interlace-Modus.
Hinweis: In H.264-Videos kann sich die Interlace-Struktur dynamisch ändern, sodass der empfohlene Wert dieses Attributs MFVideoInterlace_MixedInterlaceOrProgressive ist. Interlace-Informationen im elementaren Videodatenstrom haben Vorrang vor dem Medientyp. Weitere Informationen finden Sie unter Videointerlacing. |
MF_MT_PIXEL_ASPECT_RATIO | Pixelseitenverhältnis. |
Der Eingabetyp muss vor dem Ausgabetyp festgelegt werden. Bis der Eingabetyp festgelegt ist, gibt die IMFTransform::SetOutputType-Methode des Encoders MF_E_TRANSFORM_TYPE_NOT_SET zurück.
Ausgabetypen
Der Decoder unterstützt die folgenden Ausgabeuntertypen:
- MFVideoFormat_I420
- MFVideoFormat_IYUV
- MFVideoFormat_NV12
- MFVideoFormat_YUY2
- MFVideoFormat_YV12
Weitere Informationen zu diesen Untertypen finden Sie unter Video-Untertyp-GUIDs.
Transformieren von Attributen
Der H.264-Decoder implementiert die IMFTransform::GetAttributes-Methode . Anwendungen können diese Methode verwenden, um die folgenden Attribute abzurufen oder festzulegen.
attribute | BESCHREIBUNG |
---|---|
CODECAPI_AVDecVideoAcceleration_H264 | Aktiviert oder deaktiviert die Hardwarebeschleunigung. |
CODECAPI_AVDecVideoThumbnailGenerationMode | Aktiviert oder deaktiviert den Miniaturansichtsgenerierungsmodus. |
MF_SA_D3D_AWARE | Gibt an, dass der Decoder die DirectX-Videobeschleunigung (DXVA) unterstützt. Als schreibgeschützt behandeln. |
In Windows 8 unterstützt der H.264-Decoder auch die folgenden Attribute.
attribute | BESCHREIBUNG |
---|---|
CODECAPI_AVLowLatencyMode | Aktiviert oder deaktiviert den Decodierungsmodus mit niedriger Latenz. |
CODECAPI_AVDecNumWorkerThreads | Legt die Anzahl der Workerthreads fest, die vom Decoder verwendet werden. |
CODECAPI_AVDecVideoMaxCodedWidth | Legt die maximale Bildbreite fest, die der Decoder als Eingabetyp akzeptiert. |
CODECAPI_AVDecVideoMaxCodedHeight | Legt die maximale Bildhöhe fest, die der Decoder als Eingabetyp akzeptiert. |
MF_SA_MINIMUM_OUTPUT_SAMPLE_COUNT | Gibt die maximale Anzahl von Ausgabebeispielen an. |
MFT_DECODER_EXPOSE_OUTPUT_TYPES_IN_NATIVE_ORDER | Gibt an, ob ein Decoder IYUV/I420-Ausgabetypen (für die Transcodierung geeignet) vor anderen Formaten verfügbar macht. |
In Windows 8 unterstützt der H.264-Decoder die ICodecAPI-Schnittstelle . Diese Schnittstelle stellt eine alternative API zum Festlegen der folgenden Codeceigenschaften bereit.
- CODECAPI_AVDecVideoMaxCodedWidth
- CODECAPI_AVDecVideoAcceleration_H264
- CODECAPI_AVDecVideoMaxCodedHeight
- CODECAPI_AVDecVideoMaxCodedWidth
- CODECAPI_AVDecVideoThumbnailGenerationMode
Formateinschränkungen
Der Decoder unterstützt die folgenden Formate:
Einstellung | Format |
---|---|
Profile/Ebenen | Baseline-, Main- und High-Profile bis Ebene 5.1. (Weitere Informationen finden Sie unter ITU-T H.264-Spezifikation.) |
Chroma-Formate | 4:2:0 Chroma oder Monochrom |
Mindestauflösung | 48 × 48 Pixel |
Maximale Auflösung | 4096 × 2304 Pixel Die maximale garantierte Auflösung für die DXVA-Beschleunigung beträgt 1920 × 1088 Pixel; bei höheren Auflösungen erfolgt die Decodierung mit DXVA, wenn sie von der zugrunde liegenden Hardware unterstützt wird, andernfalls erfolgt die Decodierung mit Software. Hinweis: In Windows 7 beträgt die maximale unterstützte Auflösung 1920 × 1088 Pixel für software- und DXVA-Decodierung. |
DXVA | Der Decoder unterstützt DXVA Version 2, aber nicht DXVA Version 1. DXVA-Decodierung wird nur für Main-kompatible Baseline-, Main- und High Profile-Bitstreams unterstützt. (Hauptkompatible Baseline-Bitstreams werden als profile_idc=66 und constrained_set1_flag=1 definiert.) |
Eingabedaten müssen dem Anhang B der ISO/IEC 14496-10 entsprechen. Die Daten müssen die Startcodes enthalten. Der Decoder überspringt Bytes, bis er einen gültigen Sequenzparametersatz (SPS) und einen Bildparametersatz (PPS) im Bytestream findet.
Der Decoder unterstützt keine Film Grain Technology.
Hinweis
In einer früheren Version der Dokumentation wurde fälschlicherweise angegeben, dass der Decoder unter Windows Server 2008 R2 unterstützt wird.
Wenn die Plattformupdateergänzung für Windows Vista installiert ist, ist der H.264-Videodecoder unter Windows Vista verfügbar, aber unter Windows Vista kann nur über den Quellleser zugegriffen werden.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) |
Windows 7 [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) |
Nicht unterstützt |
DLL |
|
Weitere Informationen