Partager via


Encodeur vidéo Microsoft MPEG-2

[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement au nouveau code d’utiliser MediaPlayer, IMFMediaEngine et La capture audio/vidéo dans Media Foundation au lieu de DirectShow, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

Le filtre Microsoft MPEG-2 Video Encoder encode la vidéo MPEG-2 et MPEG-1.

Pour encoder et multiplexer des flux audio/vidéo, utilisez le filtre Encodeur Microsoft MPEG-2 , qui encapsule les fonctions de ce filtre et du filtre Microsoft MPEG-2 Audio Encoder .

Notes

Ce filtre n’est pas pris en charge sur les plateformes IA-64.

 

Filtrer les informations

Interfaces de filtre

IBaseFilter
ICodecAPI
IEncoderAPI
IMediaSeeking
IVideoEncoder

Types de média pin d’entrée

MEDIATYPE_Video, MEDIASUBTYPE_I420
MEDIATYPE_Video, MEDIASUBTYPE_IYUV
MEDIATYPE_Video, MEDIASUBTYPE_RGB24
MEDIATYPE_Video, MEDIASUBTYPE_UYVY
MEDIATYPE_Video, MEDIASUBTYPE_YUY2
MEDIATYPE_Video, MEDIASUBTYPE_YV12

Interfaces de broche d’entrée

IMemInputPin
Ipin
IQualityControl

Types de supports pin de sortie

MEDIATYPE_Stream, MEDIASUBTYPE_MPEG2_VIDEO
MEDIATYPE_Stream, MEDIASUBTYPE_MPEG2_PROGRAM
MEDIATYPE_Stream, MEDIASUBTYPE_MPEG2_TRANSPORT
MEDIATYPE_Video, MEDIASUBTYPE_MPEG2_VIDEO

Interfaces pin de sortie

IMediaSeeking
Ipin
IQualityControl

Filtrer le CLSID

CLSID_CMPEG2EncoderVideoDS (déclaré dans wmcodecdsp.h)

Exécutable

msmpeg2enc.dll

Mérite

MERIT_DO_NOT_USE

Catégorie de filtre

CLSID_LegacyAmFilterCategory

 

Notes

L’encodeur vidéo MPEG-2 peut produire les types de sortie suivants :

  • Flux élémentaire vidéo
  • Vidéo dans un flux de programme MPEG-2
  • Vidéo dans un flux de transport MPEG-2

Il prend en charge les profils et niveaux MPEG-2 suivants :

Profil Niveaux Notes
Profil simple Principal
Profil Main Low, Main, High, High-1440
Profil élevé Main, High, High-1440 Aucune scalabilité ou prise en charge 4:2:2/4:4:4 (seulement 4:2:0)
Profil 4:2:2 Main, High Aucune scalabilité ou prise en charge 4:2:2 (seulement 4:2:0)

 

Propriétés du codec

Le filtre prend en charge les propriétés suivantes via ICodecAPI.

Propriété Default Valeurs prises en charge
AVEncCodecType Vidéo MPEG-2 CODECAPI_GUID_AVEncMPEG1Video
CODECAPI_GUID_AVEncMPEG2Video
AVEncCommonBufferInLevel 12222464 bits
AVEncCommonBufferOutLevel 12222464 bits
AVEncCommonBufferSize 12222464 bits
AVEncCommonFormatConstraint Non spécifié CODECAPI_GUID_AVEncCommonFormatUnSpecified (Aucune contrainte de format)
CODECAPI_GUID_AVEncCommonFormatDVD_V (DVD-Vidéo)
CODECAPI_GUID_AVEncCommonFormatVCD (CD vidéo)
AVEncCommonMaxBitRate 9800000 (9,8 Mbits/seconde)
AVEncCommonMeanBitRate 70000000 (7,0 Mbits/seconde)
AVEncCommonMinBitRate 128
AVEncCommonMultipassMode 1 1
AVEncCommonQuality 100 1 — 100
AVEncCommonQualityVsSpeed 75 0 — 100
AVEncCommonRateControlMode CBR eAVEncCommonRateControlMode_CBR
eAVEncCommonRateControlMode_PeakConstrainedVBR
eAVEncCommonRateControlMode_Quality
AVEncInputVideoSystem Non spécifié eAVEncInputVideoSystem_Unspecified
eAVEncInputVideoSystem_PAL
eAVEncInputVideoSystem_NTSC
AVEncMPVDefaultBPictureCount 2 0 — 2
AVEncMPVFrameFieldMode Mode Frame
AVEncMPVGenerateHeaderSeqDispExt TRUE
AVEncMPVGenerateHeaderSeqExt TRUE
AVEncMPVGOPOpen FALSE
AVEncMPVGOPSInSeq 1 0 — 1
AVEncMPVGOPSize 18 images (36 champs) pour NTSC ; 15 images (30 champs) dans le cas contraire. 1 — 30; voir Remarques
AVEncMPVIntraDCPrecision 9 8 — 10
AVEncMPVLevel Élevé
AVEncMPVProfile Principal
AVEncVideoDefaultUpperFieldDominant TRUE
AVEncVideoForceSourceScanType Interlaced eAVEncVideoSourceScan_Interlaced
eAVEncVideoSourceScan_Progressive
AVEncVideoInputChromaResolution 4:2:0 eAVEncVideoChromaResolution_420 (4:2:0)
eAVEncVideoChromaResolution_SameAsSource
AVEncVideoInputChromaSubsampling Identique à la source
AVEncVideoInputColorNominalRange Identique à la source
AVEncVideoInputColorPrimaries Identique à la source
AVEncVideoInputColorTransferFunction Identique à la source
AVEncVideoInputColorTransferMatrix Identique à la source
AVEncVideoMaxKeyframeDistance AVEncMPVGOPSize - 1 0 ou AVEncMPVGOPSize - 1
AVEncVideoNoOfFieldsToEncode 0
AVEncVideoOutputChromaResolution 4:2:0 eAVEncVideoChromaResolution_420 (4:2:0)
eAVEncVideoChromaResolution_SameAsSource
AVEncVideoOutputFrameRate Doit être identique à la fréquence d’images d’entrée.
AVEncVideoOutputScanType Comme dans l’entrée eAVEncVideoOutputScan_SameAsInput
AVEncVideoPixelAspectRatio 1:1

 

Il est recommandé de définir les propriétés dans l’ordre suivant :

  1. AVEncCommonFormatConstraint
  2. AVEncCodecType
  3. AVEncMPVProfile
  4. AVEncMPVLevel
  5. AVEncInputVideoSystem

Définissez les propriétés restantes dans n’importe quel ordre. (Toutefois, consultez Structure GOP.)

Il est possible de définir des propriétés pendant l’exécution du graphique de filtre. Il existe un délai d’au moins un goP avant que les nouveaux paramètres ne prennent effet.

Opération d’encodeur

Lors de l’encodage d’une vidéo MPEG-1, l’encodeur définit automatiquement le code constrained_parameters_flag 1 bits dans l’en-tête de séquence si toutes les contraintes sont remplies.

Si nécessaire, l’encodeur arrondit les dimensions vidéo d’entrée afin que les dimensions vidéo de sortie correspondent aux exigences MPEG. Pour la vidéo progressive, les dimensions de sortie sont arrondies à un multiple de 16 en largeur et en hauteur. Pour la vidéo entrelacée, la largeur est arrondie à un multiple de 16, et la hauteur est arrondie à un multiple de 32. Cette opération d’arrondi utilise le remplissage en fonction des besoins.

Si la vidéo est entrelacée, l’encodeur effectue la détection automatique de la télécine (3:2 pull-down). La vidéo d’entrée peut contenir des paires d’images de champ, en plus des images entrelacées.

Le format interne de l’encodeur est 4:2:0 IYUV (identique à I420). Il peut effectuer une conversion de couleur à partir des formats vidéo YUY2, YV12, UYVY et RVB-24.

Pour limiter le flux de bits à un format cible (DVD ou VCD), définissez la propriété AVEncCommonFormatConstraint . Si cette propriété a une valeur autre que GUID_AVEncCommonFormatUnSpecified, l’encodeur limite la syntaxe MPEG à celle autorisée par le format cible.

Pour l’encodage en direct, définissez la propriété AVEncCommonQualityVsSpeed sur zéro. Cela entraîne l’optimisation de la vitesse de l’encodeur.

Modes d’encodage

L’encodeur prend en charge plusieurs modes d’encodage :

  • Vitesse de transmission constante (CBR) d’une passe.
  • Taux de transmission variable (VBR) basé sur la qualité en une seule passe à l’aide d’une taille d’étape de quantiseur constant. Dans ce mode, l’encodeur tente d’atteindre un niveau de qualité cible, jusqu’à un débit maximal.
  • VBR avec contrainte de pointe en une seule passe. Dans ce mode, l’encodeur tente d’atteindre un débit binaire moyen cible dans certaines limites internes.

Pour configurer le mode d’encodage, définissez les propriétés suivantes :

Mode Propriétés
CBR AVEncCommonRateControlMode = eAVEncCommonRateControlMode_CBR
AVEncCommonQualityVsSpeed
AVEncCommonMeanBitRate
VBR basé sur la qualité AVEncCommonRateControlMode = eAVEncCommonRateControlMode_Quality
AVEncCommonQuality
AVEncCommonMaxBitRate
Note: Dans ce mode, les propriétés AVEncCommonMeanBitRate et AVEncCommonMinBitRate ne sont pas utilisées. Le débit binaire minimal est supposé être égal à zéro.
VBR limité par les pics AVEncCommonRateControlMode = eAVEncCommonRateControlMode_PeakConstrainedVBR
AVEncCommonMultipassMode = 1
AVEncCommonMinBitRate
AVEncCommonMaxBitRate
AVEncCommonMeanBitRate

 

Notes

Le VBR à deux pas n’est pas pris en charge.

 

Proportions

Les proportions d’affichage et les proportions de pixels (PAR) sont liées par la formule suivante :

Format d’affichage = par × (largeur de l’image/hauteur de l’image)

L’encodeur utilise cette formule pour calculer la valeur de pel_aspect_ratio pour les flux mpeg-1 bits ou aspect_ratio_information pour les flux MPEG-2 bits. (Voir RESPECTIVEment ISO/IEC 11172 et ISO/IEC 138181-2.)

L’encodeur tente les paramètres suivants, dans l’ordre :

  1. Si l’application définit la propriété AVEncVideoPixelAspectRatio à tout moment avant l’exécution du graphe de filtre, cette propriété est utilisée pour la par.
  2. Sinon, si les membres dwPictAspectRatioX et dwPictAspectRatioY de la structure VIDEOINFOHEADER2 ne sont pas zéro, ces membres sont utilisés pour le rapport d’aspect d’affichage, et le par est calculé à partir du rapport d’aspect d’affichage.
  3. Si aucune de ces valeurs n’est présente, le par est supposé être 1.0 et le rapport d’aspect d’affichage est calculé en conséquence.

En mode d’encodage dynamique (AVEncCommonQualityVsSpeed égal à zéro), le rapport d’aspect d’affichage doit être 4:3 ou 16:9, avec une valeur par défaut de 4:3. Si le rapport d’aspect d’affichage calculé n’est pas 4:3 ou 16:9, l’encodeur utilise la valeur 4:3.

GOP Structure

Pour spécifier le groupe de structure d’images (GOP), définissez les propriétés suivantes dans l’ordre :

  1. AVEncMPVGOPSize
  2. AVEncVideoMaxKeyframeDistance
  3. AVEncMPVDefaultBPictureCount

En fonction de ces paramètres, l’encodeur produit l’une des structures GOP suivantes :

AVEncVideoMaxKeyframeDistance AVEncMPVDefaultBPictureCount GOP Structure
0 0 IIII...
AVEncMPVGOPSize - 1 0 PPPA...
AVEncMPVGOPSize - 1 1 IBPBP...
AVEncMPVGOPSize - 1 2 IBBPBBP...

 

La structure goP par défaut est IBBPBBP... avec une taille de goP de 15 images.

Si l’application contraint le format cible sur DVD (via la propriété AVEncCommonFormatConstraint ) et définit la propriété AVEncInputVideoSystem sur NTSC ou PAL, l’encodeur prend en charge les tailles de GOP suivantes :

Système vidéo Tailles de goP valides Taille du goP par défaut
NTSC 1-18 18 (36 champs)
PAL 1-15 15 (30 champs)

 

Listes de modifications de propriété de codec

La définition de la valeur d’une propriété de codec peut modifier la plage valide d’une autre propriété. (Par exemple, la contrainte du format cible limite le débit binaire moyen.) Chaque fois que l’application définit une propriété, l’encodeur vérifie si d’autres propriétés se trouvent désormais en dehors de leur plage valide. Si c’est le cas, l’encodeur réinitialise cette propriété à sa nouvelle valeur par défaut. Pour recevoir des notifications lorsque cela se produit, procédez comme suit :

  1. Appelez ICodecAPI::RegisterForEvent avec la valeur CODECAPI_CHANGELISTS.
  2. Utilisez l’interface IMediaEventEx pour surveiller les événements à partir du graphique de filtre.
  3. Si la plage ou la valeur par défaut d’une propriété change, l’encodeur envoie un événement EC_CODECAPI_EVENT avec une liste de propriétés modifiées.

Prise en charge d’IEncoderAPI

Pour la compatibilité descendante, le filtre prend en charge les propriétés suivantes via l’interface IEncoderAPI :

Propriété Description
ENCAPIPARAM_BITRATE Équivalent à AVEncCommonMeanBitRate.
ENCAPIPARAM_PEAK_BITRATE Équivalent à AVEncCommonMaxBitRate.
ENCAPIPARAM_BITRATE_MODE Équivalent à AVEncCommonRateControlMode.

 

Lorsque vous définissez la propriété ENCAPIPARAM_BITRATE_MODE , les valeurs sont mappées comme suit :

ENCAPIPARAM_BITRATE_MODE AVEncCommonRateControlMode
ConstantBitRate eAVEncCommonRateControlMode_CBR
VariableBitRateAverage Consultez Remarque.
VariableBitRatePeak eAVEncCommonRateControlMode_PeakConstrainedVBR

 

Notes

Actuellement, l’encodeur vidéo MPEG-2 ne prend pas en charge le mode d’encodage VariableBitRateAverage . Si vous définissez cette valeur, l’encodeur utilise par défaut l’encodage CBR (eAVEncCommonRateControlMode_CBR).

 

Lors de l’obtention de la propriété ENCAPIPARAM_BITRATE_MODE , les valeurs sont mappées comme suit :

AVEncCommonRateControlMode ENCAPIPARAM_BITRATE_MODE
eAVEncCommonRateControlMode_CBR ConstantBitRate
eAVEncCommonRateControlMode_Quality VariableBitRatePeak
eAVEncCommonRateControlMode_PeakConstrainedVBR VariableBitRatePeak

 

Limites

Actuellement, l’encodeur ne prend pas en charge les fonctionnalités suivantes :

  • Génération de paquets de flux élémentaire (PES) paquets.
  • Conversion de fréquence d’images. Le flux d’entrée doit avoir une fréquence d’images valide pour un flux de bits MPEG-2.
  • Extensions de fréquence d’images pour MPEG-2 (frame_rate_extension_n, frame_rate_extension_d).
  • Positions de la mémoire tampon d’entrée/sortie (VBV) pour un clip.
  • Insertion de données de ligne 21 (informations de sous-titres) dans le flux élémentaire vidéo.
  • Définition du champ time_code 25 bits dans l’en-tête GOP pour MPEG-2.
  • Filtre denoise.
  • Gestion des droits numériques (DRM).

L’encodeur introduit une latence d’encodage d’au moins un GOP.

Configuration requise

Condition requise Valeur
Client minimal pris en charge
Windows Vista Famille Premium, Windows Vista Édition Intégrale, Windows 7 Famille Premium, Windows 7 Professionnel, Windows 7 Entreprise, Windows 7 Édition Intégrale [applications de bureau uniquement]
Serveur minimal pris en charge
Aucun pris en charge
En-tête
Wmcodecdsp.h

Voir aussi

Filtres DirectShow

Types de média démultiplexeur MPEG-2