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
DIES IST _ _ NICHT ZU _ VERWENDEN.
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:
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] |
| 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:
- 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.
- 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.
- 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:
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:
- Rufen Sie ICodecAPI::RegisterForEvent mit dem Wert CODECAPI _ CHANGELISTS auf.
- Verwenden Sie die IMediaEventEx-Schnittstelle, um Ereignisse aus dem Filterdiagramm zu überwachen.
- 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 |
|