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

Microsoft Media Foundation では、エンコーダーはメディア ファンデーション変換 (MFT) として実装されます。 エンコーダーを作成する前に、まずニーズに最も適したエンコーダーを見つける必要があります。

  • Windows Media オーディオ コーデック

    カテゴリ: MFT_CATEGORY_AUDIO_ENCODER

    メジャー タイプ: MFMediaType_Audio

    サブタイプ: MFAudioFormat_WMAudioV9、MFAudioFormat_WMAudioV8、MFAudioFormat_WMAudio_Lossless、MFAudioFormat_WMASPDIF

  • Windows Media ビデオ コーデック

    カテゴリ: MFT_CATEGORY_VIDEO_ENCODER

    メジャー タイプ: MFMediaType_Audio

    サブタイプ: MFVideoFormat_WVC1、MFVideoFormat_WMV3、MFVideoFormat_WMV2、MFVideoFormat_WMV1

メディア ファンデーションには、システムで使用できるさまざまなエンコーダーを列挙するためにアプリケーションで呼び出すことができるいくつかの関数が用意されています。 エンコーダーは COM オブジェクトとして登録され、レジストリ エントリは COM クラス ファクトリの標準形式に従います。 レジストリは、メディア形式 (オーディオまたはビデオ) によって分類されるエンコーダーの CLSID を維持します。 Windows Media エンコーダーのクラス識別子は、wmcodecdsp.h ヘッダー ファイルの定数として定義されます。 メディア ファンデーションでは、カテゴリ、サポートされている入力の種類、およびサポートされている出力の種類を指定することで、MFTRegisterLocal または MFTRegisterLocalByCLSID の呼び出しを通じてエンコーダーを登録できます。 これらの関数を使用して正常に登録されると、MFT はメディア ファンデーション列挙関数によって考慮されます。

エンコーダー MFT のインスタンスを作成する場合、アプリケーションには次の選択肢があります。

アプリケーションでパイプライン レイヤー ASF コンポーネントを使用してファイルを ASF 形式にエンコードしている場合は、エンコーダー MFT を変換ノードとしてパイプラインに挿入する必要があります。 エンコード トポロジで変換ノードを作成する場合、オブジェクトの種類を IMFTransform インターフェイスまたは IMFActivate オブジェクトへのポインターとして設定できます。 メディア ファンデーションには、エンコード トポロジ内の変換ノードとして便利に設定できるように、Windows Media エンコーダー用のライセンス認証オブジェクトが用意されています。 トポロジが解決されると、メディア セッションはライセンス認証オブジェクトを使用してエンコーダー MFT のインスタンスを作成します。

Windows Media エンコーダー