エンコード プロパティ
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 を使用している場合:
- エンコーダーの IMFTransform インターフェイスの使用に関するページで説明されているように、エンコーダー MFT の IMFTransform インターフェイスへの参照を取得します。
- IPropertyStore インターフェイスに対するエンコーダー MFT のクエリ。
- IPropertyStore::SetValue を呼び出して、必要なプロパティを設定します。
組み込みのエンコーダー アクティブ化オブジェクトを使用していて、ASF ファイル シンクを既に作成している場合は、ASF メディア シンクのプロパティ ストアを MFCreateWMAEncoderActivate または MFCreateWMVEncoderActivate に渡すことができます。 エンコーダーは、アプリケーションで指定された設定に基づいて自動的に構成されます。 詳細については、「 エンコーダーのアクティブ化オブジェクトの使用」で説明されている手順を参照してください。
アクティブ化オブジェクトを使用して Media Foundation オブジェクトを作成する方法の詳細については、「 アクティブ化オブジェクト」を参照してください。
関連トピック