Freigeben über


Microsoft MPEG-2 Video Encoder

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde durch MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation ersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]

Der Microsoft MPEG-2 Video Encoder-Filter codiert MPEG-2- und MPEG-1-Video.

Verwenden Sie zum Codieren und Multiplexen von Audio-/Videostreams den Microsoft MPEG-2 Encoder-Filter , der die Funktionen dieses Filters und des Microsoft MPEG-2-Audio-Encoder-Filters kapselt.

Hinweis

Dieser Filter wird auf IA-64-basierten Plattformen nicht unterstützt.

 

Informationen filtern

Filterschnittstellen

IBaseFilter
ICodecAPI
IEncoderAPI
IMediaSeeking
IVideoEncoder

Eingabeheftmedientypen

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

Eingabenadelschnittstellen

IMemInputPin
Ipin
IQualityControl

Ausgabeheftmedientypen

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

Ausgabepinschnittstellen

IMediaSeeking
Ipin
IQualityControl

CLSID filtern

CLSID_CMPEG2EncoderVideoDS (deklariert in wmcodecdsp.h)

Ausführbare Datei

msmpeg2enc.dll

Verdienst

MERIT_DO_NOT_USE

Filterkategorie

CLSID_LegacyAmFilterCategory

 

Bemerkungen

Der MPEG-2 Video Encoder kann die folgenden Ausgabearten erzeugen:

  • Video elementarer Stream
  • Video in einem MPEG-2-Programmstream
  • Video in einem MPEG-2-Transportstream

Es unterstützt die folgenden MPEG-2-Profile und Ebenen:

Profil Levels Bemerkungen
Einfaches Profil Main
Profil: Main Niedrig, Main, Hoch, Hoch 1440
High Profile Main, High, High-1440 Keine Skalierbarkeit oder 4:2:2/4:4:4-Unterstützung (nur 4:2:0)
4:2:2 Profil Haupt, Hoch Keine Skalierbarkeit oder 4:2:2-Unterstützung (nur 4:2:0)

 

Codeceigenschaften

Der Filter unterstützt die folgenden Eigenschaften über ICodecAPI.

Eigenschaft Standard Unterstützte Werte
AVEncCodecType MPEG-2-Video CODECAPI_GUID_AVEncMPEG1Video
CODECAPI_GUID_AVEncMPEG2Video
AVEncCommonBufferInLevel 12222464 Bits
AVEncCommonBufferOutLevel 12222464 Bits
AVEncCommonBufferSize 12222464 Bits
AVEncCommonFormatConstraint Nicht angegeben. CODECAPI_GUID_AVEncCommonFormatUnSpecified (Keine Formateinschränkung)
CODECAPI_GUID_AVEncCommonFormatDVD_V (DVD-Video)
CODECAPI_GUID_AVEncCommonFormatVCD (Video-CD)
AVEncCommonMaxBitRate 98000000 (9,8 Mbits/Sekunde)
AVEncCommonMeanBitRate 70000000 (7,0 Mbits/Sekunde)
AVEncCommonMinBitRate 128
AVEncCommonMultipassMode 1 1
AVEncCommonQuality 100 1 — 100
AVEncCommonQualityVsSpeed 75 0 — 100
AVEncCommonRateControlMode CBR eAVEncCommonRateControlMode_CBR
eAVEncCommonRateControlMode_PeakConstrainedVBR
eAVEncCommonRateControlMode_Quality
AVEncInputVideoSystem Nicht angegeben. eAVEncInputVideoSystem_Unspecified
eAVEncInputVideoSystem_PAL
eAVEncInputVideoSystem_NTSC
AVEncMPVDefaultBPictureCount 2 0 — 2
AVEncMPVFrameFieldMode Framemodus
AVEncMPVGenerateHeaderSeqDispExt TRUE
AVEncMPVGenerateHeaderSeqExt TRUE
AVEncMPVGOPOpen FALSE
AVEncMPVGOPSInSeq 1 0 — 1
AVEncMPVGOPSize 18 Frames (36 Felder) für NTSC; Andernfalls 15 Frames (30 Felder). 1 — 30; siehe Hinweise
AVEncMPVIntraDCPrecision 9 8 — 10
AVEncMPVLevel Hoch
AVEncMPVProfile Main
AVEncVideoDefaultUpperFieldDominant TRUE
AVEncVideoForceSourceScanType Interlaced eAVEncVideoSourceScan_Interlaced
eAVEncVideoSourceScan_Progressive
AVEncVideoInputChromaResolution 4:2:0 eAVEncVideoChromaResolution_420 (4:2:0)
eAVEncVideoChromaResolution_SameAsSource
AVEncVideoInputChromaSubsampling Identisch mit der Quelle
AVEncVideoInputColorNominalRange Identisch mit der Quelle
AVEncVideoInputColorPrimaries Identisch mit der Quelle
AVEncVideoInputColorTransferFunction Identisch mit der Quelle
AVEncVideoInputColorTransferMatrix Identisch mit der Quelle
AVEncVideoMaxKeyframeDistance AVEncMPVGOPSize – 1 0 oder AVEncMPVGOPSize – 1
AVEncVideoNoOfFieldsToEncode 0
AVEncVideoOutputChromaResolution 4:2:0 eAVEncVideoChromaResolution_420 (4:2:0)
eAVEncVideoChromaResolution_SameAsSource
AVEncVideoOutputFrameRate Muss mit der Eingabeframerate identisch sein.
AVEncVideoOutputScanType Identisch mit der Eingabe eAVEncVideoOutputScan_SameAsInput
AVEncVideoPixelAspectRatio 1:1

 

Es wird empfohlen, Eigenschaften in der folgenden Reihenfolge festzulegen:

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

Legen Sie die restlichen Eigenschaften in beliebiger Reihenfolge fest. (Siehe GOP-Struktur.)

Es ist möglich, Eigenschaften festzulegen, während das Filterdiagramm ausgeführt wird. Es gibt eine Verzögerung von mindestens einem GOP, bevor die neuen Einstellungen wirksam werden.

Encodervorgang

Beim Codieren von MPEG-1-Videos legt der Encoder automatisch den 1-Bit-constrained_parameters_flag Code im Sequenzheader fest, wenn alle Einschränkungen erfüllt sind.

Bei Bedarf rundet der Encoder die Eingabevideodimensionen auf, sodass die Ausgabevideodimensionen den MPEG-Anforderungen entsprechen. Bei progressiven Videos werden die Ausgabedimensionen auf ein Vielfaches von 16 in Breite und Höhe aufgerundet. Bei Interlaced Video wird die Breite auf ein Vielfaches von 16 aufgerundet, und die Höhe wird auf ein Vielfaches von 32 aufgerundet. Bei diesem Aufrundungsvorgang wird bei Bedarf aufgefüllt.

Wenn das Video interlaced ist, führt der Encoder eine automatische Telecine-Erkennung (3:2 Pulldown) aus. Das Eingabevideo kann neben interlaced Frames auch Feldbildpaare enthalten.

Das interne Format des Encoders ist 4:2:0 IYUV (identisch mit I420). Es kann Eine Farbkonvertierung aus den Videoformaten YUY2, YV12, UYVY und RGB-24 durchführen.

Um den Bitstream auf ein Zielformat (DVD oder VCD) zu beschränken, legen Sie die AVEncCommonFormatConstraint-Eigenschaft fest. Wenn diese Eigenschaft einen anderen Wert als GUID_AVEncCommonFormatUnSpecified aufweist, beschränkt der Encoder die MPEG-Syntax auf die vom Zielformat zulässige Syntax.

Legen Sie für die Livecodierung die AVEncCommonQualityVsSpeed-Eigenschaft auf Null fest. Dies führt dazu, dass der Encoder die Geschwindigkeit optimiert.

Codierungsmodi

Der Encoder unterstützt mehrere Codierungsmodi:

  • Ein-Pass-Konstante Bitrate (CBR).
  • Qualitätsbasierte variable Bitrate (VBR) mit einem Durchlauf unter Verwendung einer konstanten Quantizerschrittgröße. In diesem Modus versucht der Encoder, eine Zielqualitätsstufe bis zu einer maximalen Bitrate zu erreichen.
  • 1-Pass-VBR mit Eingeschränktem Spitzenwert. In diesem Modus versucht der Encoder, innerhalb bestimmter interner Grenzwerte eine durchschnittliche Zielbitrate zu erreichen.

Legen Sie zum Konfigurieren des Codierungsmodus die folgenden Eigenschaften fest:

Mode Eigenschaften
CBR AVEncCommonRateControlMode = eAVEncCommonRateControlMode_CBR
AVEncCommonQualityVsSpeed
AVEncCommonMeanBitRate
Qualitätsbasierte VBR AVEncCommonRateControlMode = eAVEncCommonRateControlMode_Quality
AVEncCommonQuality
AVEncCommonMaxBitRate
Hinweis: In diesem Modus werden die Eigenschaften AVEncCommonMeanBitRate und AVEncCommonMinBitRate nicht verwendet. Es wird angenommen, dass die minimale Bitrate null ist.
VbR mit Spitzenbeschränkung AVEncCommonRateControlMode = eAVEncCommonRateControlMode_PeakConstrainedVBR
AVEncCommonMultipassMode = 1
AVEncCommonMinBitRate
AVEncCommonMaxBitRate
AVEncCommonMeanBitRate

 

Hinweis

VbR mit zwei Durchlaufs wird nicht unterstützt.

 

Seitenverhältnis

Das Anzeigeseitenverhältnis und das Pixelseitenverhältnis (Pixel Aspect Ratio, PAR) sind durch die folgende Formel verknüpft:

Seitenverhältnis der Anzeige = PAR × (Bildbreite/Bildhöhe)

Der Encoder verwendet diese Formel, um den Wert von pel_aspect_ratio für MPEG-1-Bitstreams oder aspect_ratio_information für MPEG-2-Bitstreams zu berechnen. (Siehe ISO/IEC 11172 bzw. ISO/IEC 138181-2.)

Der Encoder versucht die folgenden Einstellungen in der reihenfolge:

  1. Wenn die Anwendung die AVEncVideoPixelAspectRatio-Eigenschaft zu einem beliebigen Zeitpunkt vor der Ausführung des Filterdiagramms festlegt, wird diese Eigenschaft für den PAR verwendet.
  2. Wenn die Elemente dwPictAspectRatioX und dwPictAspectRatioY der VIDEOINFOHEADER2-Struktur ungleich 0 sind, werden diese Elemente für das Seitenverhältnis der Anzeige verwendet, und der PAR wird aus dem Seitenverhältnis der Anzeige berechnet.
  3. Wenn keiner dieser Werte vorhanden ist, wird der PAR als 1,0 angenommen, und das Anzeigeseitenverhältnis wird entsprechend berechnet.

Im Livecodierungsmodus (AVEncCommonQualityVsSpeed gleich 0) muss das Seitenverhältnis der Anzeige entweder 4:3 oder 16:9 mit einem Standardwert von 4:3 sein. Wenn das berechnete Anzeigeseitenverhältnis nicht 4:3 oder 16:9 ist, verwendet der Encoder den Wert 4:3.

GOP-Struktur

Um die GoP-Struktur (Group of Picture) anzugeben, legen Sie die folgenden Eigenschaften in der richtigen Reihenfolge fest:

  1. AVEncMPVGOPSize
  2. AVEncVideoMaxKeyframeDistance
  3. AVEncMPVDefaultBPictureCount

Basierend auf diesen Einstellungen erzeugt der Encoder eine der folgenden GOP-Strukturen:

AVEncVideoMaxKeyframeDistance AVEncMPVDefaultBPictureCount GOP-Struktur
0 0 IIII...
AVEncMPVGOPSize – 1 0 IPPP...
AVEncMPVGOPSize – 1 1 IBPBP...
AVEncMPVGOPSize – 1 2 IBBPBBP...

 

Die GoP-Standardstruktur ist IBBPBBP... mit einer GOP-Größe von 15 Frames.

Wenn die Anwendung das Zielformat auf DVD beschränkt (über die AVEncCommonFormatConstraint-Eigenschaft ) und die AVEncInputVideoSystem-Eigenschaft auf NTSC oder PAL festlegt, unterstützt der Encoder die folgenden GOP-Größen:

Videosystem Gültige GOP-Größen Gop-Standardgröße
NTSC 1-18 18 (36 Felder)
PAL 1-15 15 (30 Felder)

 

Codec-Eigenschaftsänderungslisten

Das Festlegen des Werts einer Codeceigenschaft kann den gültigen Bereich einer anderen Eigenschaft ändern. (Beispielsweise schränkt die Einschränkung des Zielformats die durchschnittliche Bitrate ein.) Wenn die Anwendung eine Eigenschaft festlegt, überprüft der Encoder, ob andere Eigenschaften jetzt außerhalb ihres gültigen Bereichs liegen. Wenn dies der Fall ist, setzt der Encoder diese Eigenschaft auf den neuen Standardwert zurück. Gehen Sie wie folgt vor, um in diesem Fall Benachrichtigungen zu erhalten:

  1. Rufen Sie ICodecAPI::RegisterForEvent mit dem Wert CODECAPI_CHANGELISTS auf.
  2. Verwenden Sie die IMediaEventEx-Schnittstelle , um Ereignisse aus dem Filterdiagramm zu überwachen.
  3. Wenn sich der Bereich oder Standardwert einer Eigenschaft ändert, sendet der Encoder ein EC_CODECAPI_EVENT-Ereignis mit einer Liste geänderter Eigenschaften.

IEncoderAPI-Unterstützung

Aus Gründen der Abwärtskompatibilität unterstützt der Filter die folgenden Eigenschaften über die IEncoderAPI-Schnittstelle :

Eigenschaft BESCHREIBUNG
ENCAPIPARAM_BITRATE Entspricht AVEncCommonMeanBitRate.
ENCAPIPARAM_PEAK_BITRATE Entspricht AVEncCommonMaxBitRate.
ENCAPIPARAM_BITRATE_MODE Entspricht AVEncCommonRateControlMode.

 

Beim Festlegen der ENCAPIPARAM_BITRATE_MODE-Eigenschaft werden die Werte wie folgt zugeordnet:

ENCAPIPARAM_BITRATE_MODE AVEncCommonRateControlMode
ConstantBitRate eAVEncCommonRateControlMode_CBR
VariableBitRateAverage Siehe Hinweis.
VariableBitRatePeak eAVEncCommonRateControlMode_PeakConstrainedVBR

 

Hinweis

Derzeit unterstützt der MPEG-2-Videoencoder den VariableBitRateAverage-Codierungsmodus nicht. Wenn Sie diesen Wert festlegen, wird der Encoder standardmäßig auf CBR-Codierung (eAVEncCommonRateControlMode_CBR) festgelegt.

 

Beim Abrufen der eigenschaft ENCAPIPARAM_BITRATE_MODE werden die Werte wie folgt zugeordnet:

AVEncCommonRateControlMode ENCAPIPARAM_BITRATE_MODE
eAVEncCommonRateControlMode_CBR ConstantBitRate
eAVEncCommonRateControlMode_Quality VariableBitRatePeak
eAVEncCommonRateControlMode_PeakConstrainedVBR VariableBitRatePeak

 

Einschränkungen

Derzeit unterstützt der Encoder keines der folgenden Features:

  • Generierung von paketierten PES-Paketen (Packetized Elementary Stream).
  • Bildfrequenzkonvertierung. Der Eingabedatenstrom muss eine Bildfrequenz aufweisen, die für einen MPEG-2-Bitstream gültig ist.
  • Bildfrequenzerweiterungen für MPEG-2 (frame_rate_extension_n, frame_rate_extension_d).
  • VbV-Positionen (Entry/Exit Buffer) für einen Clip.
  • Einfügen von Zeilen-21-Daten (Untertitelinformationen) in den Video elementary Stream.
  • Festlegen des 25-Bit-time_code Felds im GOP-Header für MPEG-2.
  • Denoise-Filter.
  • Digital Rights Management (DRM).

Der Encoder führt eine Codierungslatenz von mindestens einem GOP ein.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows Vista Home Premium, Windows Vista Ultimate, Windows 7 Home Premium, Windows 7 Professional, Windows 7 Enterprise, Windows 7 Ultimate [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Nicht unterstützt
Header
Wmcodecdsp.h

Weitere Informationen

DirectShow-Filter

MPEG-2-Demultiplexer-Medientypen