Microsoft MPEG-2 Video Encoder

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

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

Hinweis

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

Filterinformationen

Filterschnittstellen

IBaseFilter
ICodecAPI
IEncoderAPI
IMediaSeeking
IVideoEncoder

Eingabepinmedientypen

MEDIATYPE _ Video, MEDIASUBTYPE _ I420
MEDIATYPE _ Video, MEDIASUBTYPE _ IYUV
MEDIATYPE _ Video, MEDIASUBTYPE _ RGB24
MEDIATYPE _ Video, MEDIASUBTYPE _ UYVY
MEDIATYPE _ Video, MEDIASUBTYPE _ YUY2
MEDIATYPE _ Video, MEDIASUBTYPE _ YV12

Eingabe-Pin-Schnittstellen

IMemInputPin
Ipin
IQualityControl

Medientypen des Ausgabepins

MEDIATYPE _ Streamen von , MEDIASUBTYPE _ MPEG2 _ VIDEO
MEDIATYPE _ Stream, MEDIASUBTYPE _ MPEG2 _ PROGRAM
MEDIATYPE _ Stream, MEDIASUBTYPE _ MPEG2 _ TRANSPORT
MEDIATYPE _ Video, MEDIASUBTYPE _ MPEG2 _ VIDEO

Ausgabe-Pin-Schnittstellen

IMediaSeeking
Ipin
IQualityControl

Filtern von CLSID

CLSID _ CMPEG2EncoderVideoDS (deklariert in wmcodecdsp.h)

Ausführbare Datei

msmpeg2enc.dll

Verdienst

DIES IST _ _ NICHT ZU _ VERWENDEN.

Filterkategorie

CLSID _ LegacyAmFilterCategory

Hinweise

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

  • Elementarer Videostream
  • Video in einem MPEG-2-Programmstream
  • Video in einem MPEG-2-Transportstream

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

Profil Ebenen Hinweise
Einfaches Profil Main
Profil: Main Niedrig, Main, Hoch, Hoch-1440
Hohes Profil Main, High, High-1440 Keine Skalierbarkeit oder 4:2:2/4:4:4-Unterstützung (nur 4:2:0)
4:2:2 Profil Main, High 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 9800000 (9,8 MBit/s)
AVEncCommonMeanBitRate 7000000 (7,0 MBit/s)
AVEncCommonMinBitRate 128
AVEncCommonMultipassMode 1 1
AVEncCommonQuality 100 1 — 100
AVEncCommonQualityVsSpeed 75 0 — 100
AVEncCommonRateControlMode CBR eAVEncCommonRateControlMode _ CBR
eAVEncCommonRateControlMode _ PeakConstrainedVBR
eAVEncCommonRateControlMode-Qualität _
AVEncInputVideoSystem Nicht angegeben. eAVEncInputVideoSystem _ Nicht angegeben
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 Eingabebildrate identisch sein.
AVEncVideoOutputScanType Identisch mit der Eingabe eAVEncVideoOutputScan _ SameAsInput
AVEncVideoPixelAspectRatio 1:1

Es wird empfohlen, Eigenschaften in der folgenden Reihenfolge zu setzen:

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

Legen Sie die restlichen Eigenschaften in beliebiger Reihenfolge fest. (Weitere Informationen finden Sie jedoch unter GOP-Struktur.)

Es ist möglich, Eigenschaften während der Ausführung des Filterdiagramms zu festlegen. 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-Flagcode für eingeschränkte Parameter im Sequenzheader fest, wenn alle Einschränkungen erfüllt sind. _ _

Bei Bedarf rundet der Encoder die Videoeingabedimensionen 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. Für Interlaced-Videos wird die Breite auf ein Vielfaches von 16 aufgerundet, und die Höhe wird auf ein Vielfaches von 32 aufgerundet. Dieser Aufrundeungsvorgang verwendet bei Bedarf Auf padding.

Wenn das Video verschachtelt ist, führt der Encoder eine automatische Telecineerkennung (3:2 Pull-Down) durch. Das Eingabevideo kann neben Geschachtelten Frames auch Feldbildpaare enthalten.

Das interne Format des Encoders ist 4:2:0 IYUV (identisch mit I420). Sie kann Farbkonvertierung aus den Videoformaten YUY2, YV12, UYCLIP 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 über einen anderen Wert als GUID _ AVEncCommonFormatUnSpecified verfügt, schränkt der Encoder die MPEG-Syntax auf den wert ein, der vom Zielformat zugelassen wird.

Legen Sie für die Livecodierung die EIGENSCHAFT AVEncCommonQualityVsSpeed auf 0 (null) fest. Dies führt dazu, dass der Encoder die Geschwindigkeit optimiert.

Codierungsmodi

Der Encoder unterstützt mehrere Codierungsmodi:

  • One-Pass Constant Bit Rate (CBR).
  • Auf der 1-Pass-Qualität basierende variable Bitrate (VBR) unter Verwendung einer konstanten Schrittgröße des Quantisierungsmoduls. In diesem Modus versucht der Encoder, eine Zielqualitätsstufe bis zu einer maximalen Bitrate zu erreichen.
  • 1-Pass-VBR mit eingeschränkter Spitzenlast. In diesem Modus versucht der Encoder, eine durchschnittliche Zielbitrate innerhalb bestimmter interner Grenzwerte zu erreichen.

Legen Sie zum Konfigurieren des Codierungsmodus die folgenden Eigenschaften fest:

Modus Eigenschaften
CBR AVEncCommonRateControlMode = eAVEncCommonRateControlMode_CBR
AVEncCommonQualityVsSpeed
AVEncCommonMeanBitRate
Qualitätsbasierte VBR AVEncCommonRateControlMode = eAVEncCommonRateControlMode_Quality
AVEncCommonQuality
AVEncCommonMaxBitRate
[!Note]
In diesem Modus werden die Eigenschaften AVEncCommonMeanBitRate und AVEncCommonMinBitRate nicht verwendet. Es wird davon ausgegangen, dass die Mindestbitrate 0 (null) ist.

VBR mit Eingeschränkter Spitzenlast AVEncCommonRateControlMode = eAVEncCommonRateControlMode_PeakConstrainedVBR
AVEncCommonMultipassMode = 1
AVEncCommonMinBitRate
AVEncCommonMaxBitRate
AVEncCommonMeanBitRate

Hinweis

Die VBR mit zwei Durchgangen wird nicht unterstützt.

Seitenverhältnis

Das Anzeige-Seitenverhältnis und das Pixel-Seitenverhältnis (PAR) sind durch die folgende Formel verknüpft:

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

Der Encoder verwendet diese Formel, um den Wert des Seitenverhältnisses für MPEG-1-Bitstreams oder Informationen zum Seitenverhältnis für _ _ _ _ MPEG-2-Bitstreams zu berechnen. (Siehe ISO/IEC 11172 bzw. ISO/IEC 138181-2.)

Der Encoder versucht die folgenden Einstellungen in der folgenden Reihenfolge:

  1. Wenn die Anwendung die AVEncVideoPixelAspectRatio-Eigenschaft zu einem beliebigen Zeitpunkt vor der Verwendung des Filterdiagramms fest legt, wird diese Eigenschaft für den PAR verwendet.
  2. Wenn andernfalls die DwPictAspectRatioX- und dwPictAspectRatioY-Elemente der VIDEOINFOHEADER2-Struktur nicht null 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 davon ausgegangen, dass der PAR-Wert 1,0 ist, und das Seitenverhältnis für die Anzeige wird entsprechend berechnet.

Im Livecodierungsmodus (AVEncCommonQualityVsSpeed gleich 0) muss das Seitenverhältnis für die Anzeige entweder 4:3 oder 16:9 mit dem Standardwert 4:3 sein. Wenn das berechnete Anzeige-Seitenverhä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 angegebenen 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 (über die AVEncCommonFormatConstraint-Eigenschaft) einschränkt und die AVEncInputVideoSystem-Eigenschaft auf NTSC oder PAL fest legt, 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-Eigenschaftenänderungslisten

Das Festlegen des Werts einer Codeceigenschaft kann den gültigen Bereich einer anderen Eigenschaft ändern. (Wenn Sie beispielsweise das Zielformat einschränken, wird die durchschnittliche Bitrate eingeschränkt.) Wenn die Anwendung eine Eigenschaft legt, überprüft der Encoder, ob andere Eigenschaften jetzt außerhalb ihres gültigen Bereichs liegen. Wenn dies der Wert 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-MODUS _ _ Entspricht AVEncCommonRateControlMode.

Beim Festlegen der ENCAPIPARAM _ BITRATE _ MODE-Eigenschaft werden die Werte wie folgt zugeordnet:

ENCAPIPARAM-BITRATE-MODUS _ _ AVEncCommonRateControlMode
ConstantBitRate eAVEncCommonRateControlMode _ CBR
VariableBitRateAverage Siehe Hinweis.
VariableBitRatePeak eAVEncCommonRateControlMode _ PeakConstrainedVBR

Hinweis

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

Beim Abrufen der ENCAPIPARAM _ BITRATE _ MODE-Eigenschaft werden die Werte wie folgt zugeordnet:

AVEncCommonRateControlMode ENCAPIPARAM-BITRATE-MODUS _ _
eAVEncCommonRateControlMode _ CBR ConstantBitRate
eAVEncCommonRateControlMode _ Quality VariableBitRatePeak
eAVEncCommonRateControlMode _ PeakConstrainedVBR VariableBitRatePeak

Einschränkungen

Derzeit unterstützt der Encoder keine der folgenden Features:

  • Generierung von paketierten elementaren Streampaketen (PES).
  • Bildfrequenzkonvertierung. Der Eingabestream muss über eine Bildfrequenz verfügen, die für einen MPEG-2-Bitstream gültig ist.
  • Bildfrequenzerweiterungen für MPEG-2 (_ _ Bildfrequenzerweiterung _ n, _ _ Bildfrequenzerweiterung _ d).
  • Positionen des Eingabe-/Exitpuffers (VBV) für einen Clip.
  • Einfügen von Zeilen-21-Daten (Untertitelinformationen) in den elementaren Videostream.
  • Festlegen des 25-Bit-Zeitcodefelds 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, nur Windows 7 [ Ultimate-Desktop-Apps]
Unterstützte Mindestversion (Server)
Nicht unterstützt
Header
Wmcodecdsp.h

Siehe auch

DirectShow-Filter

MPEG-2 Demultiplexer-Medientypen