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
MERIT_DO_NOT_USE
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:
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:
- 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.
- 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.
- 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:
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:
- 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_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 |
|
Weitere Informationen