Convertisseur vidéo amélioré

[Le composant décrit sur cette page, Convertisseur vidéo amélioré, est une fonctionnalité héritée. Il a été remplacé par le Convertisseur vidéo simple (SVR) exposé à travers les composants MediaPlayer et IMFMediaEngine. Pour lire du contenu vidéo, vous devez envoyer des données dans l’un de ces composants et les autoriser à instancier le nouveau convertisseur vidéo. Ces composants ont été optimisés pour Windows 10 et Windows 11. Microsoft recommande vivement, dans la mesure du possible, que le nouveau code utilise MediaPlayer ou les API de bas niveau IMFMediaEngine pour lire des médias vidéo dans Windows au lieu de l’EVR. Microsoft recommande, si possible, la réécriture du code existant qui utilise les API héritées pour être à jour avec les nouvelles API.]

Le convertisseur vidéo amélioré (EVR) est un composant qui affiche la vidéo sur le moniteur des utilisateurs. Il existe deux versions de l’EVR :

  • Le récepteur multimédia EVR, pour les applications Media Foundation.
  • Le filtre EVR, pour les applications DirectShow.

Les deux versions utilisent les mêmes objets internes pour afficher la vidéo et partagent plusieurs interfaces.

L’EVR peut mélanger jusqu’à 16 flux vidéo. Le premier flux d’entrée est appelé flux de référence. Le flux de référence s’affiche toujours en premier dans l’ordre de plan. Tous les flux supplémentaires sont appelés des sous-flux et sont mélangés au-dessus du flux de référence. L’application peut modifier l’ordre de plan des sous-flux, mais aucun sous-flux ne peut être premier dans l’ordre de plan.

Le pilote graphique détermine les formats vidéo pris en charge, mais ils sont généralement limités aux éléments suivants :

  • Flux de référence : espace de couleurs YUV progressif ou entrelacé sans alpha par pixel (tel que NV12 ou YUY2) ou RVB progressif.
  • Sous-flux : YUV progressif avec alpha par pixel, comme AYUV ou AI44.

Les formats de sous-flux disponibles peuvent dépendre du format du flux de référence. Pour plus d’informations, consultez l’article Négociation de type de support EVR.

En interne, l’EVR utilise un objet appelé mélangeur pour composer les images des flux d’entrée sur une surface d’affichage. Le mélangeur effectue également le désentrelacement et la correction des couleurs. La sortie du mélangeur est la trame vidéo composite finale. Un deuxième objet appelé présentateur affiche la trame vidéo. Le présentateur planifie le rendu des images et gère le périphérique Direct3D. Une application peut fournir une implémentation personnalisée du mélangeur ou du présentateur.

La fréquence d’images de sortie est verrouillée sur le flux de référence. Chaque fois que les sous-flux reçoivent de nouvelles trames, le mélangeur les maintient. Lorsque le flux de référence reçoit une nouvelle trame, le mélangeur compose cette trame avec les trames de sous-flux. (Si le flux de référence est entrelacé, une trame de référence complète peut nécessiter plusieurs échantillons de supports.) Il est possible qu’un sous-flux reçoive plusieurs trames alors que le mélangeur attend une trame de référence. Dans ce cas, le mélangeur abandonne simplement la trame de sous-flux précédente.

Étant donné que le présentateur crée le périphérique Direct3D, il est également chargé de partager le périphérique avec d’autres objets de pipeline qui doivent accéder aux services DXVA (DirectX Video Acceleration). En particulier, le mélangeur EVR utilise les services de traitement vidéo DXVA pour désentrelacer et mélanger la vidéo. En externe à l’EVR, les décodeurs logiciels peuvent utiliser DXVA pour le décodage vidéo accéléré. Le présentateur partage le périphérique Direct3D au moyen du Gestionnaire de périphériques Direct3D. Le diagramme suivant illustre l’architecture interne de l’EVR. (Le décodeur logiciel, grisé, ne fait pas partie de l’EVR.)

architectural diagram showing the evr.

Interfaces de l’EVR

L’EVR prend en charge les interfaces suivantes. Certaines de ces interfaces sont implémentées par le mélangeur ou le présentateur. Pour chaque interface, la rubrique de référence décrit comment obtenir un pointeur vers l’interface.

Interface Description
IEVRFilterConfig Définit le nombre de repères d’entrée sur le filtre EVR (DirectShow uniquement).
IEVRFilterConfigEx Configure le filtre EVR (DirectShow uniquement).
IEVRTrustedVideoPlugin Permet à un plug-in EVR de restituer une vidéo protégée.
IMFDesiredSample Permet au présentateur EVR de demander une trame spécifique à partir du mélangeur.
IMFQualityAdvise Permet au responsable qualité d’ajuster la qualité de la vidéo EVR.
IMFTopologyServiceLookup Permet à un mélangeur ou présentateur personnalisé d’obtenir des pointeurs d’interface à partir de l’EVR.
IMFVideoDeviceID Retourne l’identificateur de périphérique d’un mélangeur ou d’un présentateur EVR.
IMFVideoDisplayControl Contrôle la façon dont l’EVR affiche la vidéo.
IMFVideoMixerBitmap Effectue la fusion alpha d’une image bitmap statique avec la vidéo.
IMFVideoMixerControl Contrôle la façon dont le convertisseur vidéo amélioré (EVR) mélange les sous-flux vidéo.
IMFVideoMixerControl2 Contrôle les préférences de désentrelacement vidéo.
IMFVideoPositionMapper Mappe une position sur un flux vidéo d’entrée à la position correspondante sur un flux vidéo de sortie.
IMFVideoPresenter Exposé par le présentateur EVR.
IMFVideoProcessor Contrôle le traitement vidéo, notamment l’ajustement, les filtres de bruit et les filtres de détails.
IMFVideoRenderer Définit un mélangeur ou un présentateur sur l’EVR.
IMFVideoSampleAllocator Alloue des échantillons vidéo.

 

Dans cette section

Rubrique Description
Utilisation du filtre EVR DirectShow Comment utiliser l’EVR dans une application DirectShow.
Utilisation du récepteur multimédia EVR Comment utiliser l’EVR dans une application Media Foundation.
Utilisation des contrôles d’affichage vidéo Comment contrôler la façon dont l’EVR affiche la vidéo à l’intérieur de la fenêtre d’application.
Utilisation des contrôles de mixage vidéo Comment contrôler le fonctionnement du mélangeur EVR.
Négociation de type de support EVR Décrit comment l’EVR détermine les formats vidéo qu’il peut accepter en entrée.
Mélangeurs personnalisés Comment écrire un mélangeur personnalisé pour l’EVR.
Procédure d’écriture d’un présentateur EVR Comment écrire un présentateur personnalisé pour l’EVR.

 

Lecture audio/vidéo