Microsoft MPEG-2 ビデオ エンコーダー
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]
Microsoft MPEG-2 Video Encoder フィルターは、MPEG-2 および MPEG-1 ビデオをエンコードします。
オーディオ/ビデオ ストリームをエンコードおよび多重化するには、このフィルターと Microsoft MPEG-2 Audio Encoder フィルターの両方の機能をカプセル化する Microsoft MPEG-2 Encoder フィルターを使用します。
注意
このフィルターは、IA-64 ベースのプラットフォームではサポートされていません。
フィルター情報
フィルター インターフェイス
IBaseFilter
ICodecAPI
IEncoderAPI
IMediaSeeking
IVideoEncoder
入力ピン メディアの種類
MEDIATYPE_Video、 MEDIASUBTYPE_I420
MEDIATYPE_Video、 MEDIASUBTYPE_IYUV
MEDIATYPE_Video、 MEDIASUBTYPE_RGB24
MEDIATYPE_Video、 MEDIASUBTYPE_UYVY
MEDIATYPE_Video、 MEDIASUBTYPE_YUY2
MEDIATYPE_Video、 MEDIASUBTYPE_YV12
入力ピン インターフェイス
IMemInputPin
IPin
IQualityControl
出力ピン メディアの種類
MEDIATYPE_Stream、 MEDIASUBTYPE_MPEG2_VIDEO
MEDIATYPE_Stream、 MEDIASUBTYPE_MPEG2_PROGRAM
MEDIATYPE_Stream、 MEDIASUBTYPE_MPEG2_TRANSPORT
MEDIATYPE_Video、 MEDIASUBTYPE_MPEG2_VIDEO
出力ピン インターフェイス
IMediaSeeking
IPin
IQualityControl
CLSID のフィルター処理
CLSID_CMPEG2EncoderVideoDS (wmcodecdsp.h で宣言)
[実行可能ファイル]
msmpeg2enc.dll
MERIT_DO_NOT_USE
CLSID_LegacyAmFilterCategory
注釈
MPEG-2 ビデオ エンコーダーでは、次の種類の出力を生成できます。
- ビデオの基本ストリーム
- MPEG-2 プログラム ストリームのビデオ
- MPEG-2 トランスポート ストリーム内のビデオ
次の MPEG-2 プロファイルとレベルがサポートされています。
プロファイル | Levels | 注釈 |
---|---|---|
簡易プロファイル | メイン | |
メイン プロファイル | Low、Main、High、High-1440 | |
ハイ プロファイル | Main、High、High-1440 | スケーラビリティなし、または 4:2:2/4:4:4 のサポート (4:2:0 のみ) |
4:2:2 プロファイル | Main、High | スケーラビリティなしまたは 4:2:2 のサポート (4:2:0 のみ) |
コーデックのプロパティ
このフィルターは 、ICodecAPI を使用して次のプロパティをサポートします。
プロパティ | Default | サポートされている値 |
---|---|---|
AVEncCodecType | MPEG-2 ビデオ |
CODECAPI_GUID_AVEncMPEG1Video CODECAPI_GUID_AVEncMPEG2Video |
AVEncCommonBufferInLevel | 12222464 ビット | |
AVEncCommonBufferOutLevel | 12222464 ビット | |
AVEncCommonBufferSize | 12222464 ビット | |
AVEncCommonFormatConstraint | 指定されていません。 |
CODECAPI_GUID_AVEncCommonFormatUnSpecified (書式制約なし) CODECAPI_GUID_AVEncCommonFormatDVD_V (DVD-Video) CODECAPI_GUID_AVEncCommonFormatVCD (ビデオ CD) |
AVEncCommonMaxBitRate | 9800000 (9.8 Mbits/秒) | |
AVEncCommonMeanBitRate | 7000000 (7.0 Mbits/秒) | |
AVEncCommonMinBitRate | 128 | |
AVEncCommonMultipassMode | 1 | 1 |
AVEncCommonQuality | 100 | 1 — 100 |
AVEncCommonQualityVsSpeed | 75 | 0 — 100 |
AVEncCommonRateControlMode | Cbr |
eAVEncCommonRateControlMode_CBR eAVEncCommonRateControlMode_PeakConstrainedVBR eAVEncCommonRateControlMode_Quality |
AVEncInputVideoSystem | 指定されていません。 | eAVEncInputVideoSystem_Unspecified eAVEncInputVideoSystem_PAL eAVEncInputVideoSystem_NTSC |
AVEncMPVDefaultBPictureCount | 2 | 0 — 2 |
AVEncMPVFrameFieldMode | フレーム モード | |
AVEncMPVGenerateHeaderSeqDispExt | TRUE | |
AVEncMPVGenerateHeaderSeqExt | TRUE | |
AVEncMPVGOPOpen | FALSE | |
AVEncMPVGOPSInSeq | 1 | 0 — 1 |
AVEncMPVGOPSize | NTSC の場合は 18 フレーム (36 フィールド)。それ以外の場合は 15 フレーム (30 フィールド)。 | 1 — 30;「解説」を参照してください |
AVEncMPVIntraDCPrecision | 9 | 8 — 10 |
AVEncMPVLevel | 高 | |
AVEncMPVProfile | メイン | |
AVEncVideoDefaultUpperFieldDominant | TRUE | |
AVEncVideoForceSourceScanType | Interlaced |
eAVEncVideoSourceScan_Interlaced eAVEncVideoSourceScan_Progressive |
AVEncVideoInputChromaResolution | 4:2:0 |
eAVEncVideoChromaResolution_420 (4:2:0) eAVEncVideoChromaResolution_SameAsSource |
AVEncVideoInputChromaSubsampling | ソースと同じ | |
AVEncVideoInputColorNominalRange | ソースと同じ | |
AVEncVideoInputColorPrimaries | ソースと同じ | |
AVEncVideoInputColorTransferFunction | ソースと同じ | |
AVEncVideoInputColorTransferMatrix | ソースと同じ | |
AVEncVideoMaxKeyframeDistance | AVEncMPVGOPSize - 1 | 0 または AVEncMPVGOPSize - 1 |
AVEncVideoNoOfFieldsToEncode | 0 | |
AVEncVideoOutputChromaResolution | 4:2:0 |
eAVEncVideoChromaResolution_420 (4:2:0) eAVEncVideoChromaResolution_SameAsSource |
AVEncVideoOutputFrameRate | 入力フレーム レートと同じである必要があります。 | |
AVEncVideoOutputScanType | 入力と同じ | eAVEncVideoOutputScan_SameAsInput |
AVEncVideoPixelAspectRatio | 1:1 |
プロパティは次の順序で設定することをお勧めします。
残りのプロパティを任意の順序で設定します。 (ただし、「 GOP 構造体」を参照してください)。
フィルター グラフの実行中にプロパティを設定できます。 新しい設定が有効になるまでに、少なくとも 1 つの GOP の遅延があります。
エンコーダー操作
MPEG-1 ビデオをエンコードする場合、エンコーダーは、すべての制約が満たされた場合に、シーケンス ヘッダーの 1 ビット constrained_parameters_flag コードを自動的に設定します。
必要に応じて、エンコーダーは入力ビデオのサイズを切り上げて、出力ビデオのサイズが MPEG の要件と一致するようにします。 プログレッシブ ビデオの場合、出力ディメンションは幅と高さの両方で 16 の倍数に切り上げられます。 インターレース ビデオの場合、幅は 16 の倍数に切り上げられ、高さは 32 の倍数に切り上げられます。 この切り上げ操作では、必要に応じてパディングが使用されます。
ビデオがインターレースされている場合、エンコーダーは自動テレシネ (3:2 プルダウン) 検出を実行します。 入力ビデオには、インターレースフレームに加えて、フィールド画像のペアを含めることができます。
エンコーダーの内部形式は 4:2:0 IYUV (I420 と同じです) です。 YUY2、YV12、UYVY、RGB-24 のビデオ形式から色変換を実行できます。
ビットストリームをターゲット形式 (DVD または VCD) に制限するには、 AVEncCommonFormatConstraint プロパティを設定します。 このプロパティに GUID_AVEncCommonFormatUnSpecified以外の値がある場合、エンコーダーは MPEG 構文をターゲット形式で許可されている構文に制限します。
ライブ エンコードの場合は、 AVEncCommonQualityVsSpeed プロパティを 0 に設定します。 これにより、エンコーダーが速度に合わせて最適化されます。
エンコード モード
エンコーダーでは、いくつかのエンコード モードがサポートされています。
- 1 パス定数ビット レート (CBR)。
- 一定の量子化器ステップ サイズを使用する、1 パス品質ベースの可変ビット レート (VBR)。 このモードでは、エンコーダーは最大ビット レートまでのターゲット品質レベルを満たそうとします。
- 1 パスのピーク制約付き VBR。 このモードでは、エンコーダーは特定の内部制限内で目標平均ビットレートを達成しようとします。
エンコード モードを構成するには、次のプロパティを設定します。
モード | Properties |
---|---|
Cbr |
AVEncCommonRateControlMode = eAVEncCommonRateControlMode_CBR AVEncCommonQualityVsSpeed AVEncCommonMeanBitRate |
品質ベースの VBR |
AVEncCommonRateControlMode = eAVEncCommonRateControlMode_Quality AVEncCommonQuality AVEncCommonMaxBitRate メモ: このモードでは、 AVEncCommonMeanBitRate プロパティと AVEncCommonMinBitRate プロパティは使用されません。 最小ビット レートはゼロと見なされます。 |
ピーク制約付き VBR |
AVEncCommonRateControlMode = eAVEncCommonRateControlMode_PeakConstrainedVBR AVEncCommonMultipassMode = 1 AVEncCommonMinBitRate AVEncCommonMaxBitRate AVEncCommonMeanBitRate |
注意
2 パス VBR はサポートされていません。
アスペクト比
表示縦横比とピクセル縦横比 (PAR) は、次の式に関連しています。
- 表示縦横比 = PAR × (図の幅/図の高さ)
エンコーダーでは、この数式を使用して、MPEG-1 ビットストリームのpel_aspect_ratioまたは MPEG-2 ビットストリームのaspect_ratio_informationの値を計算します。 (それぞれ ISO/IEC 11172 と ISO/IEC 138181-2 を参照してください)。
エンコーダーは、次の設定を順番に試行します。
- フィルター グラフを実行する前に、アプリケーションで AVEncVideoPixelAspectRatio プロパティをいつでも設定する場合、このプロパティは PAR に使用されます。
- それ以外の場合、VIDEOINFOHEADER2 構造体の dwPictAspectRatioX メンバーと dwPictAspectRatioY メンバーが 0 以外の場合、これらのメンバーは表示縦横比に使用され、PAR は表示縦横比から計算されます。
- これらの値が存在しない場合、PAR は 1.0 と見なされ、それに応じて表示縦横比が計算されます。
ライブ エンコード モード (AVEncCommonQualityVsSpeed が 0 に等しい) では、表示縦横比は 4:3 または 16:9 のいずれかであり、既定値は 4:3 である必要があります。 計算された表示縦横比が 4:3 または 16:9 でない場合、エンコーダーは値 4:3 を使用します。
GOP 構造体
画像 (GOP) 構造のグループを指定するには、次のプロパティを順番に設定します。
これらの設定に基づいて、エンコーダーは次のいずれかの GOP 構造体を生成します。
AVEncVideoMaxKeyframeDistance | AVEncMPVDefaultBPictureCount | GOP 構造体 |
---|---|---|
0 | 0 | IIII... |
AVEncMPVGOPSize - 1 | 0 | IPPP... |
AVEncMPVGOPSize - 1 | 1 | IBPBP... |
AVEncMPVGOPSize - 1 | 2 | IBBPBBP... |
既定の GOP 構造体は IBBPBBP... です。15 フレームの GOP サイズ。
アプリケーションがターゲット形式を DVD ( AVEncCommonFormatConstraint プロパティを使用) に制限し、 AVEncInputVideoSystem プロパティを NTSC または PAL に設定する場合、エンコーダーは次の GOP サイズをサポートします。
ビデオ システム | 有効な GOP サイズ | 既定の GOP サイズ |
---|---|---|
Ntsc | 1-18 | 18 (36 フィールド) |
PAL (PAL) | 1 ~ 15 | 15 (30 フィールド) |
Codec プロパティの変更リスト
1 つのコーデック プロパティの値を設定すると、別のプロパティの有効な範囲が変更される可能性があります。 (たとえば、ターゲット形式を制限すると、平均ビット レートが制限されます)。アプリケーションがプロパティを設定するたびに、エンコーダーは他のプロパティが有効な範囲外になったかどうかを確認します。 その場合、エンコーダーはそのプロパティを新しい既定値にリセットします。 これが発生したときに通知を受信するには、次の操作を行います。
- CODECAPI_CHANGELISTS値を使用して ICodecAPI::RegisterForEvent を呼び出します。
- フィルター グラフからのイベントを監視するには、 IMediaEventEx インターフェイスを使用します。
- プロパティの範囲または既定値が変更された場合、エンコーダーは変更されたプロパティの一覧を含む EC_CODECAPI_EVENT イベントを送信します。
IEncoderAPI のサポート
下位互換性のために、フィルターは IEncoderAPI インターフェイスを介して次のプロパティをサポートします。
プロパティ | 説明 |
---|---|
ENCAPIPARAM_BITRATE | AVEncCommonMeanBitRate と同等です。 |
ENCAPIPARAM_PEAK_BITRATE | AVEncCommonMaxBitRate と同等です。 |
ENCAPIPARAM_BITRATE_MODE | AVEncCommonRateControlMode と同等です。 |
ENCAPIPARAM_BITRATE_MODE プロパティを設定すると、値は次のようにマップされます。
ENCAPIPARAM_BITRATE_MODE | AVEncCommonRateControlMode |
---|---|
ConstantBitRate | eAVEncCommonRateControlMode_CBR |
VariableBitRateAverage | 注を参照。 |
VariableBitRatePeak | eAVEncCommonRateControlMode_PeakConstrainedVBR |
注意
現在、MPEG-2 ビデオ エンコーダーでは VariableBitRateAverage エンコード モードはサポートされていません。 この値を設定すると、エンコーダーの既定値は CBR エンコード (eAVEncCommonRateControlMode_CBR) になります。
ENCAPIPARAM_BITRATE_MODE プロパティを取得すると、値は次のようにマップされます。
AVEncCommonRateControlMode | ENCAPIPARAM_BITRATE_MODE |
---|---|
eAVEncCommonRateControlMode_CBR | ConstantBitRate |
eAVEncCommonRateControlMode_Quality | VariableBitRatePeak |
eAVEncCommonRateControlMode_PeakConstrainedVBR | VariableBitRatePeak |
制限事項
現在、エンコーダーでは次の機能はサポートされていません。
- パケット化された基本ストリーム (PES) パケットの生成。
- フレーム レート変換。 入力ストリームには、MPEG-2 ビットストリームに対して有効なフレーム レートが必要です。
- MPEG-2 のフレーム レート拡張機能 (frame_rate_extension_n、 frame_rate_extension_d)。
- クリップのエントリ/終了バッファー (VBV) の位置。
- ビデオの基本ストリームへの行 21 データ (クローズド キャプション情報) の挿入。
- MPEG-2 の GOP ヘッダーで 25 ビット time_code フィールドを設定します。
- Denoise フィルター。
- デジタル著作権管理 (DRM)。
エンコーダーでは、少なくとも 1 つの GOP のエンコード待機時間が導入されます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows Vista Home Premium、Windows Vista Ultimate、Windows 7 Home Premium、Windows 7 Professional、Windows 7 Enterprise、Windows 7 Ultimate [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
サポートなし |
ヘッダー |
|
関連項目