Share via


Microsoft MPEG-2 ビデオ エンコーダー

[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayerIMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayerIMFMediaEngineAudio/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_VideoMEDIASUBTYPE_I420
MEDIATYPE_VideoMEDIASUBTYPE_IYUV
MEDIATYPE_VideoMEDIASUBTYPE_RGB24
MEDIATYPE_VideoMEDIASUBTYPE_UYVY
MEDIATYPE_VideoMEDIASUBTYPE_YUY2
MEDIATYPE_VideoMEDIASUBTYPE_YV12

入力ピン インターフェイス

IMemInputPin
IPin
IQualityControl

出力ピン メディアの種類

MEDIATYPE_StreamMEDIASUBTYPE_MPEG2_VIDEO
MEDIATYPE_StreamMEDIASUBTYPE_MPEG2_PROGRAM
MEDIATYPE_StreamMEDIASUBTYPE_MPEG2_TRANSPORT
MEDIATYPE_VideoMEDIASUBTYPE_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

 

プロパティは次の順序で設定することをお勧めします。

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

残りのプロパティを任意の順序で設定します。 (ただし、「 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 を参照してください)。

エンコーダーは、次の設定を順番に試行します。

  1. フィルター グラフを実行する前に、アプリケーションで AVEncVideoPixelAspectRatio プロパティをいつでも設定する場合、このプロパティは PAR に使用されます。
  2. それ以外の場合、VIDEOINFOHEADER2 構造体の dwPictAspectRatioX メンバーと dwPictAspectRatioY メンバーが 0 以外の場合、これらのメンバーは表示縦横比に使用され、PAR は表示縦横比から計算されます。
  3. これらの値が存在しない場合、PAR は 1.0 と見なされ、それに応じて表示縦横比が計算されます。

ライブ エンコード モード (AVEncCommonQualityVsSpeed が 0 に等しい) では、表示縦横比は 4:3 または 16:9 のいずれかであり、既定値は 4:3 である必要があります。 計算された表示縦横比が 4:3 または 16:9 でない場合、エンコーダーは値 4:3 を使用します。

GOP 構造体

画像 (GOP) 構造のグループを指定するには、次のプロパティを順番に設定します。

  1. AVEncMPVGOPSize
  2. AVEncVideoMaxKeyframeDistance
  3. AVEncMPVDefaultBPictureCount

これらの設定に基づいて、エンコーダーは次のいずれかの 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 つのコーデック プロパティの値を設定すると、別のプロパティの有効な範囲が変更される可能性があります。 (たとえば、ターゲット形式を制限すると、平均ビット レートが制限されます)。アプリケーションがプロパティを設定するたびに、エンコーダーは他のプロパティが有効な範囲外になったかどうかを確認します。 その場合、エンコーダーはそのプロパティを新しい既定値にリセットします。 これが発生したときに通知を受信するには、次の操作を行います。

  1. CODECAPI_CHANGELISTS値を使用して ICodecAPI::RegisterForEvent を呼び出します。
  2. フィルター グラフからのイベントを監視するには、 IMediaEventEx インターフェイスを使用します。
  3. プロパティの範囲または既定値が変更された場合、エンコーダーは変更されたプロパティの一覧を含む 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_nframe_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 [デスクトップ アプリのみ]
サポートされている最小のサーバー
サポートなし
ヘッダー
Wmcodecdsp.h

関連項目

DirectShow フィルター

MPEG-2 デマルチプレクサーメディアタイプ