Encodeur vidéo H. 265/HEVC

L’encodeur vidéo Media Foundation H. 265 est une transformation Media Foundation qui prend en charge l’encodage de contenu au format H. 265/HEVC. L’encodeur prend en charge les profils suivants :

  • Profil Main

L’encodeur vidéo H. 265 expose les interfaces suivantes :

Types d’entrée

Le type de média d’entrée doit avoir l’un des sous-types suivants :

  • MFVideoFormat _ IYUV
  • MFVideoFormat _ NV12
  • MFVideoFormat _ YUY2
  • MFVideoFormat _ YV12

Pour plus d’informations sur ces sous-types, consultez GUID sous-type de vidéo.

Le type de sortie doit être défini avant le type d’entrée. Tant que le type de sortie n’est pas défini, la méthode IMFTransform :: SetInputType de l’encodeur retourne le type de _ transformation MF E _ _ _ non _ défini.

Types de sortie

L’encodeur prend en charge un seul sous-type de sortie :

  • MFVideoFormat _ H265

Définissez les attributs suivants sur le type de média de sortie.

Attribut Description
MF_MT_MAJOR_TYPE Type principal. Doit être MFMediaType_Video.
MF_MT_SUBTYPE Sous-type de vidéo. Doit être MFVideoFormat_HEVC.
MF_MT_AVG_BITRATE Vitesse moyenne des bits encodés, en bits par seconde. Doit être supérieur à zéro.
MF_MT_FRAME_RATE Fréquence d’images.
MF_MT_FRAME_SIZE Taille du frame.
MF_MT_INTERLACE_MODE Mode entrelacé.
MF_MT_VIDEO_PROFILE Profil d’encodage H. 265.
Les valeurs prises en charge sont les suivantes :
  • eAVEncH265VProfile_Main_420_8
MF_MT_MPEG2_LEVEL Spécifie le niveau de la vidéo codée. Pour plus d’informations sur les contraintes de profil et de niveau, reportez-vous à l’annexe A de l’ITU-T H. 265.
MF_MT_PIXEL_ASPECT_RATIO facultatif. Spécifie les proportions en pixels. La valeur par défaut est 1:1.

Une fois le type de sortie défini, l’encodeur vidéo met à jour le type en ajoutant l’attribut d' _ _ _ _ en-tête de séquence MPEG MF MT . Cet attribut contient l’en-tête de séquence.

Méthodes IMFTransform prises en charge

Les méthodes suivantes de l’interface IMFTransform sont prises en charge pour l’encodeur H. 265/HEVC :

Toutes les autres méthodes IMFTransform retournent l’erreur E _ NOTIMPL.

Méthodes ICodecAPI prises en charge

Les méthodes suivantes de l’interface ICodecAPI sont prises en charge pour l’encodeur H. 265/HEVC :

Toutes les autres méthodes ICodecAPI retournent l’erreur E _ NOTIMPL.

Propriétés du codec

L’encodeur H. 265 implémente l’interface ICodecAPI pour définir les paramètres d’encodage. Il prend en charge les propriétés suivantes.

Pour connaître la configuration requise du codec pour la certification de l’encodeur TPM, consultez la section ci-dessous.

Propriété Description
CODECAPI_AVEncCommonRateControlMode Définit le mode de contrôle de la fréquence. Les modes pris en charge sont les suivants :
  • eAVEncCommonRateControlMode_CBR
  • eAVEncCommonRateControlMode_Quality
Si d’autres modes sont spécifiés, le contrôle de taux de eAVEncCommonRateControlMode_CBR est utilisé.
Il s’agit d’une valeur VT_UI4.
CODECAPI_AVEncCommonMeanBitRate Définit la vitesse de transmission moyenne pour le flux binaire encodé, en bits par seconde.
La plage valide est [1... 2 ³ ² – 1].
Il s’agit d’une valeur VT_UI4.
CODECAPI_AVEncCommonBufferSize Définit la taille de la mémoire tampon, en octets, pour l’encodage à débit binaire constant (CBR).
La plage valide est [1... 2 ³ ² – 1].
Il s’agit d’une valeur VT_UI4.
CODECAPI_AVEncCommonMaxBitRate Définit le débit maximal pour les modes de contrôle de débit qui autorisent une vitesse de transmission maximale.
La plage valide est [1... 2 ³ ² – 1].
Il s’agit d’une valeur VT_UI4.
CODECAPI_AVEncMPVGOPSize Définit le nombre d’images d’un en-tête GOP sur le suivant, y compris l’ancrage de début, mais pas le suivant.
La plage valide est [0... 2 ³ ² – 1]. Si la valeur est zéro, l’encodeur sélectionne la taille de groupe d’images. La valeur par défaut est zéro.
Il s’agit d’une valeur VT_UI4.
CODECAPI_AVLowLatencyMode Active ou désactive le mode faible latence.
Il s’agit d’une valeur VT_BOOL.
CODECAPI_AVEncCommonQualityVsSpeed Définit le compromis de qualité/vitesse. Cette valeur affecte la façon dont l’encodeur effectue différentes opérations d’encodage, telles que la compensation de mouvement. À des niveaux de complexité plus élevés, l’encodeur s’exécute plus lentement, mais produit une meilleure qualité à la même vitesse de transmission.
La plage valide est comprise entre 0 et 100. En interne, cette valeur est mappée à un plus petit ensemble de niveaux de qualité/vitesse pris en charge par l’encodeur.
Il s’agit d’une valeur VT_UI4.
CODECAPI_AVEncVideoForceKeyFrame Force l’encodeur à coder le frame suivant comme une image clé.
Il s’agit d’une valeur VT_UI4.
CODECAPI_AVEncVideoEncodeQP Lorsque cette propriété est définie, l’encodeur utilise le QP spécifié pour encoder le frame suivant et tous les frames suivants jusqu’à ce qu’un nouveau QP soit spécifié.
Plage valide : comprise entre 0 et 51
CODECAPI_AVEncVideoMinQP Cette propriété définit une limite au minimum de QP que l’encodeur peut utiliser pendant le RateControl CBR.
Il s’agit d’une valeur VT_UI4.
CODECAPI_AVEncVideoMaxQP Cette propriété définit une limite au maximum de QP que l’encodeur peut utiliser pendant le RateControl CBR.
Il s’agit d’une valeur VT_UI4.
CODECAPI_VideoEncoderDisplayContentType Définit si le contenu est une vidéo en plein écran, par opposition au contenu d’écran qui peut avoir une fenêtre de vidéo plus petite ou n’avoir aucune vidéo du tout.
Il s’agit d’une valeur VT_UI4.
CODECAPI_AVEncNumWorkerThreads Définit le nombre de threads utilisés pour effectuer l’opération de compression. L’encodeur divise le frame en mosaïques, de sorte que le nombre de threads est égal au nombre de vignettes.
  • Nombre de processeurs logiques. Le nombre de threads doit être inférieur ou égal au nombre de processeurs logiques.
  • Taille du frame. La taille d’une vignette doit être supérieure ou égale à 265x64 pixels.
  • Parité. Le nombre de threads doit être une valeur paire. Si la valeur spécifiée est irrégulière, la valeur paire inférieure suivante sera utilisée.
Il s’agit d’une valeur VT_UI4.

Encodeur matériel certifié

Si un encodeur matériel certifié est présent, il est généralement utilisé à la place de l’encodeur système de la boîte de réception pour Media Foundation scénarios associés. Des encodeurs certifiés sont requis pour prendre en charge un certain ensemble de propriétés ICodecAPI et peuvent éventuellement prendre en charge un autre ensemble de propriétés. Le processus de certification doit garantir que les propriétés requises sont correctement prises en charge et, si une propriété facultative est prise en charge, qu’elle est également prise en charge correctement.

Voici l’ensemble des propriétés ICodecAPI obligatoires et facultatives pour que les encodeurs passent la certification de l’encodeur TPM.

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows 10 [ applications de bureau uniquement]
Serveur minimal pris en charge
Aucun pris en charge
DLL
Mfh265enc.dll

Voir aussi

Objets codec