エンコード プロパティ

Windows Media Audio および Windows Media Video エンコーダーでは、さまざまなエンコード モードがサポートされています。 これらのモードは一般に、エンコーダー Media Foundation 変換 (MFT) のプロパティを設定することによって構成されます。 ファイル エンコードを実行するには、WMContainer レベルのコンポーネントを使用するか、または部分的なトポロジを構築するかに関係なく、エンコードのモードとストリームのメディアの種類に応じてプロパティを設定してエンコーダーを適切に構成する必要があります。 ASF ファイルの書き込みに使用するエンコーダーとオブジェクト (ASF ファイル シンクまたは ASF マルチプレクサー) の両方で、同じプロパティ セットを設定する必要があります。

エンコーダーのプロパティは wmcodecdsp.h で定義されます。 エンコーダーの構成に使用される特定のプロパティは、 IPropertyStore インターフェイスのメソッドを使用して設定されます。

オーディオ ストリームのプロパティ

次の表に、オーディオ ストリームのエンコーダー構成を示します。

エンコードの種類 プロパティ名 - 値
定数ビット レート エンコード MFPKEY_VBRENABLED - FALSE (省略可能)既定では、MFPKEY_VBRENABLEDは FALSE に設定 されます
品質ベースの可変ビット レート エンコード MFPKEY_VBRENABLED - TRUE
MFPKEY_PASSESUSED - 1 (省略可能)
既定では、MFPKEY_PASSESUSEDは 1 に設定されます。
MFPKEY_DESIRED_VBRQUALITY - 0 ~ 100
制約のない可変ビット レート エンコード MFPKEY_VBRENABLED - TRUE
MFPKEY_PASSESUSED - 2
ピーク制約付き可変ビット レート エンコード MFPKEY_VBRENABLED - TRUE
MFPKEY_PASSESUSED - 2
MFPKEY_RMAX - 最大ビット レート
MFPKEY_BMAX - 最大バッファー ウィンドウ

 

ビデオ ストリームのプロパティ

次の表は、ビデオ ストリームのエンコーダー構成を示しています。

エンコードの種類 プロパティ名
定数ビット レート エンコード MFPKEY_VBRENABLED - FALSE (省略可能)
既定では、MFPKEY_VBRENABLEDは FALSE に設定 されています
MFPKEY_VIDEOWINDOW - バッファー ウィンドウ
品質ベースの可変ビット レート エンコード MFPKEY_VBRENABLED - TRUE
MFPKEY_PASSESUSED - 1 (省略可能)
既定では、MFPKEY_PASSESUSEDは 1 に設定されます。
MFPKEY_DESIRED_VBRQUALITY - 0 ~ 100
制約のない可変ビット レート エンコード MFPKEY_VBRENABLED - TRUE
MFPKEY_PASSESUSED - 2
ピーク制約付き可変ビット レート エンコード MFPKEY_VBRENABLED - TRUE
MFPKEY_PASSESUSED - 2
MFPKEY_RMAX - 最大ビット レート
MFPKEY_BMAX - 最大バッファー ウィンドウ

 

エンコーダーのプロパティ ストアの構成

エンコード セッションの前にエンコードの種類とさまざまなストリーム固有の設定を指定して、エンコーダーを構成する必要があります。 出力ファイルの ASF ヘッダー オブジェクトを表す ASF ContentInfo オブジェクト のプロパティ ストアでエンコーダー プロパティを設定する必要もあります。

エンコーダー MFT を使用している場合:

  1. エンコーダーの IMFTransform インターフェイスの使用に関するページで説明されているように、エンコーダー MFT の IMFTransform インターフェイスへの参照を取得します
  2. IPropertyStore インターフェイスに対するエンコーダー MFT のクエリ。
  3. IPropertyStore::SetValue を呼び出して、必要なプロパティを設定します。

組み込みのエンコーダー アクティブ化オブジェクトを使用していて、ASF ファイル シンクを既に作成している場合は、ASF メディア シンクのプロパティ ストアを MFCreateWMAEncoderActivate または MFCreateWMVEncoderActivate に渡すことができます。 エンコーダーは、アプリケーションで指定された設定に基づいて自動的に構成されます。 詳細については、「 エンコーダーのアクティブ化オブジェクトの使用」で説明されている手順を参照してください。

アクティブ化オブジェクトを使用して Media Foundation オブジェクトを作成する方法の詳細については、「 アクティブ化オブジェクト」を参照してください。

エンコーダー MFT のインスタンス化

Windows Media Encoders