Décodeur vidéo H.264
Le décodeur vidéo Media Foundation H.264 est une transformation Media Foundation qui prend en charge le décodage des profils de base, principal et élevé, jusqu’au niveau 5.1.
Le décodeur vidéo H.264 expose les interfaces suivantes.
- ICodecAPI (pris en charge dans Windows 8)
- IMFGetService
- IMFQualityAdvise
- IMFQualityAdvise2
- IMFRateControl
- IMFRateSupport
- IMFRealTimeClient
- IMFTransform
Pour créer un instance du décodeur, effectuez l’une des opérations suivantes :
- Appelez la fonction MFTEnum ou MFTEnumEx .
- Appelez CoCreateInstance. Le CLSID du décodeur est CLSID_CMSH264DecoderMFT, déclaré dans wmcodecdsp.h.
Types d’entrée
Le type d’entrée doit contenir au moins les deux attributs suivants :
Attribut | Description |
---|---|
MF_MT_MAJOR_TYPE | MFMediaType_Video |
MF_MT_SUBTYPE | MFVideoFormat_H264 ou MFVideoFormat_H264_ES |
Si le type d’entrée contient uniquement ces deux attributs, le décodeur propose un type de sortie par défaut, qui agit comme un espace réservé. Lorsque le décodeur reçoit suffisamment d’échantillons d’entrée pour produire une trame de sortie, il signale un changement de format en retournant MF_E_TRANSFORM_STREAM_CHANGE à partir de IMFTransform::P rocessOutput. Consultez la documentation ProcessOutput pour plus d’informations sur la gestion des modifications de format.
Pour éviter un changement de format initial, fournissez autant d’informations que possible dans le type d’entrée, notamment :
Attribut | Description |
---|---|
MF_MT_FRAME_RATE | Fréquence d’images. |
MF_MT_FRAME_SIZE | Dimensions du cadre. |
MF_MT_INTERLACE_MODE | Mode entrelacé.
Note: Dans la vidéo H.264, la structure entrelacs peut changer dynamiquement, de sorte que la valeur recommandée de cet attribut est MFVideoInterlace_MixedInterlaceOrProgressive. Les informations entrelaces dans le flux élémentaire vidéo sont prioritaires sur le type de média. Pour plus d’informations, consultez Interlacing vidéo. |
MF_MT_PIXEL_ASPECT_RATIO | Proportion de pixels. |
Le type d’entrée doit être défini avant le type de sortie. Tant que le type d’entrée n’est pas défini, la méthode IMFTransform::SetOutputType de l’encodeur retourne MF_E_TRANSFORM_TYPE_NOT_SET.
Types de sortie
Le décodeur prend en charge les sous-types de sortie suivants :
- MFVideoFormat_I420
- MFVideoFormat_IYUV
- MFVideoFormat_NV12
- MFVideoFormat_YUY2
- MFVideoFormat_YV12
Pour plus d’informations sur ces sous-types, consultez GUID de sous-type vidéo.
Transformer les attributs
Le décodeur H.264 implémente la méthode IMFTransform::GetAttributes . Les applications peuvent utiliser cette méthode pour obtenir ou définir les attributs suivants.
Attribut | Description |
---|---|
CODECAPI_AVDecVideoAcceleration_H264 | Active ou désactive l’accélération matérielle. |
CODECAPI_AVDecVideoThumbnailGenerationMode | Active ou désactive le mode de génération de miniatures. |
MF_SA_D3D_AWARE | Indique que le décodeur prend en charge l’accélération vidéo DirectX (DXVA). Traitez en lecture seule. |
Dans Windows 8, le décodeur H.264 prend également en charge les attributs suivants.
Attribut | Description |
---|---|
CODECAPI_AVLowLatencyMode | Active ou désactive le mode de décodage à faible latence. |
CODECAPI_AVDecNumWorkerThreads | Définit le nombre de threads de travail utilisés par le décodeur. |
CODECAPI_AVDecVideoMaxCodedWidth | Définit la largeur d’image maximale que le décodeur acceptera comme type d’entrée. |
CODECAPI_AVDecVideoMaxCodedHeight | Définit la hauteur d’image maximale que le décodeur acceptera comme type d’entrée. |
MF_SA_MINIMUM_OUTPUT_SAMPLE_COUNT | Spécifie le nombre maximal d’exemples de sortie. |
MFT_DECODER_EXPOSE_OUTPUT_TYPES_IN_NATIVE_ORDER | Spécifie si un décodeur expose les types de sortie IYUV/I420 (appropriés pour le transcodage) avant d’autres formats. |
Dans Windows 8, le décodeur H.264 prend en charge l’interface ICodecAPI . Cette interface fournit une API alternatetivate pour définir les propriétés de codec suivantes.
- CODECAPI_AVDecVideoMaxCodedWidth
- CODECAPI_AVDecVideoAcceleration_H264
- CODECAPI_AVDecVideoMaxCodedHeight
- CODECAPI_AVDecVideoMaxCodedWidth
- CODECAPI_AVDecVideoThumbnailGenerationMode
Contraintes de format
Le décodeur prend en charge les formats suivants :
Paramètre | Format |
---|---|
Profils/niveaux | Profils de base, principal et élevé, jusqu’au niveau 5.1. (Pour plus d’informations, voir spécification ITU-T H.264.) |
Chroma Formats | 4:2:0 chroma ou monochrome |
Résolution minimale | 48 × 48 pixels |
Résolution maximale | 4096 × 2304 pixels La résolution maximale garantie pour l’accélération DXVA est de 1920 × 1 088 pixels ; à des résolutions plus élevées, le décodage est effectué avec DXVA. S’il est pris en charge par le matériel sous-jacent, sinon, le décodage s’effectue avec un logiciel. Note: Dans Windows 7, la résolution maximale prise en charge est de 1920 × 1 088 pixels pour le décodage logiciel et DXVA. |
DXVA | Le décodeur prend en charge DXVA version 2, mais pas DXVA version 1. Le décodage DXVA est pris en charge uniquement pour les flux de bits de base, principal et haut profil compatibles avec main. (Les flux binaires de base compatibles avec les principaux sont définis comme profile_idc=66 et constrained_set1_flag=1.) |
Les données d’entrée doivent être conformes à l’Annexe B de la norme ISO/IEC 14496-10. Les données doivent inclure les codes de début. Le décodeur ignore les octets jusqu’à ce qu’il trouve un jeu de paramètres de séquence valide (SPS) et un jeu de paramètres d’image (PPS) dans le flux d’octets.
Le décodeur ne prend pas en charge la technologie Film Grain.
Notes
Une version précédente de la documentation indiquait à tort que le décodeur était pris en charge sur Windows Server 2008 R2.
Si le supplément de mise à jour de plateforme pour Windows Vista est installé, le décodeur vidéo H.264 est disponible sur Windows Vista, mais il est accessible sur Windows Vista uniquement à l’aide du Lecteur source.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge |
Windows 7 [applications de bureau uniquement] |
Serveur minimal pris en charge |
Aucun pris en charge |
DLL |
|
Voir aussi