H.264-Videodecoder
Der Media Foundation H.264-Videodecoder ist eine Media Foundation-Transformation, die die Decodierung von Baseline-, Main- und High-Profilen bis zu Ebene 5.1 unterstützt.
Der H.264-Videodecoder macht die folgenden Schnittstellen verfügbar.
- ICodecAPI (unterstützt in Windows 8)
- GEGETService
- BEFIEQualityAdvise
- BEFIEQualityAdvise2
- DURCHSCHN.RateControl
- VERRATRateSupport
- VERALTENRealTimeClient
- VORRÜBERSETZUNGTransform
Führen Sie eine der folgenden Schritte aus, um eine Instanz des Decoders zu erstellen:
- Rufen Sie die MFTEnum- oder MFTEnumEx-Funktion 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:
| Attribut | BESCHREIBUNG |
|---|---|
| MF _ _ MT-HAUPTTYP _ | MFMediaType-Video _ |
| MF _ _ MT-UNTERTYP | 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 Ausgaberahmen zu erzeugen, signalisiert er eine Formatänderung, indem er MF _ E TRANSFORM STREAM _ _ _ CHANGE aus DEM FORMATTRANSFORM::P rocessOutput zurücksendet. Weitere Informationen zur Behandlung von Formatänderungen finden Sie in der ProcessOutput-Dokumentation.
Um eine anfängliche Formatänderung zu vermeiden, geben Sie so viele Informationen wie möglich im Eingabetyp an, einschließlich:
| attribute | BESCHREIBUNG |
|---|---|
| MF_MT_FRAME_RATE | Bildrate. |
| MF_MT_FRAME_SIZE | Rahmendimensionen. |
| MF_MT_INTERLACE_MODE | Interlace-Modus.[!Note] |
| MF_MT_PIXEL_ASPECT_RATIO | Pixel-Seitenverhältnis. |
Der Eingabetyp muss vor dem Ausgabetyp festgelegt werden. Bis der Eingabetyp festgelegt ist, gibt die METHODE DER ENCODERTRANSFORM::SetOutputType 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 Subtype GUIDs.
Transformieren von Attributen
Der H.264-Decoder implementiert die METHODE VERFORMTransform::GetAttributes. Anwendungen können diese Methode verwenden, um die folgenden Attribute zu erhalten oder zu festlegen.
| Attribut | 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.
| Attribut | BESCHREIBUNG |
|---|---|
| CODECAPI _ AVLowLatencyMode | Aktiviert oder deaktiviert den Decodierungsmodus mit geringer Latenz. |
| CODECAPI _ AVDecNumWorkerThreads | Legt die Anzahl der arbeitsthreads 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. |
| MINIMALE _ _ MF-SA-AUSGABEBEISPIELANZAHL _ _ _ | Gibt die maximale Anzahl von Ausgabebeispielen an. |
| _MFT-DECODER _ MACHT _ _ AUSGABETYPEN _ IN _ NATIVER REIHENFOLGE _ VERFÜGBAR | Gibt an, ob ein Decoder IYUV/I420-Ausgabetypen (geeignet für die Transcodierung) vor anderen Formaten verfügbar macht. |
In Windows 8 unterstützt der H.264-Decoder die ICodecAPI-Schnittstelle. Diese Schnittstelle stellt eine Alternativ-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:
| | | Profile/Ebenen | Baseline-, Main- und High-Profile bis Ebene 5.1. (Weitere Informationen finden Sie unter ITU-T H.264-Spezifikation.) | | Format-| 4:2:0- oder monotone | | Mindestauflösungs| 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.
[!Note]
In Windows 7 beträgt die maximal unterstützte Auflösung 1920 × 1088 Pixel für die 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 Baselinebitstreams werden als profile_idc=66 und constrained_set1_flag=1 definiert.) |
Eingabedaten müssen Anhang B von ISO/IEC 14496-10 entsprechen. Die Daten müssen die Startcodes enthalten. Der Decoder überspringt Bytes, bis er einen gültigen Sequenzparametersatz (SEQUENCE Parameter Set, SPS) und einen Bildparametersatz (PICTURE Parameter Set, PPS) im Bytestream findet.
Der Decoder unterstützt keine Film grain-Technologie.
Hinweis
In einer früheren Version der Dokumentation wurde fälschlicherweise angegeben, dass der Decoder auf Windows Server 2008 R2 unterstützt wird.
Wenn die Plattformupdateergänzung für Windows Vista installiert ist, ist der H.264-Videodecoder auf Windows Vista verfügbar, aber auf Windows Vista kann nur über den Quellleserzugegriffen werden.
Anforderungen
| Anforderung | Wert |
|---|---|
| Unterstützte Mindestversion (Client) |
nur Windows 7 [ Desktop-Apps] |
| Unterstützte Mindestversion (Server) |
Nicht unterstützt |
| DLL |
|