パイプライン レイヤーの ASF コンポーネント

Media Foundation のパイプライン モデルでは、メディア ソースが変換に接続され、さらにメディア シンクに接続されます。 ソースに含まれるデータは変換を通過し、再生またはエンコードを目的としてシンクに出力メディア サンプルを生成します。 アプリケーションで ASF コンテンツを再生するか、ASF ファイルにエンコードするかに応じて、アプリケーションでパイプラインを異なる方法でビルドする必要があります。

次のトピックには、パイプライン レイヤー コンポーネントに関する情報が含まれています。

再生用の ASF パイプラインの 3 つのメインコンポーネントは次のとおりです。

  • ASF メディア ソースは、ASF ファイルを表す Media Foundation によって提供されます。
  • オーディオ リサンプリング、ビデオ イメージのサイズ変更など(変換)
  • オーディオおよびビデオ レンダラー (シンク)

再生パイプラインの構築の詳細については、「 再生トポロジの作成」を参照してください。

エンコード用の ASF パイプラインの 3 つのメイン コンポーネントは次のとおりです。

  • 変換する必要がある形式でデータを表すメディア ソース。 このコンポーネントには、Media Foundation によって提供される既定のメディア ソースの 1 つ、または IMFMediaSource インターフェイスを公開するカスタム ソースのいずれかを指定できます。
  • 形式変換を実行する Windows Media エンコーダー (変換)。
  • アプリケーションで指定された出力ファイルに ASF オブジェクトとメディア サンプルを書き込む Media Foundation によって提供される ASF メディア シンク。

パイプラインはトポロジで表され、パイプライン内の各オブジェクトはトポロジ ノードによって表されます。 再生とエンコードの両方で、すべてのパイプライン操作がメディア セッションによって処理されます。 メディア セッションの役割の 1 つは、パイプラインに出力を生成するために必要なすべてのコンポーネントがあることを確認することです。 たとえば、エンコード パイプラインでは、オーディオ ソース形式がターゲット形式と異なる場合、メディア セッションは、適切なサンプル レート変換を実行するリサンプリングツールなどの追加の変換コンポーネントを挿入します。 パイプラインを介したデータ フロー制御も、メディア セッションによって管理されます。 再生シナリオでは、メディア セッションを開始すると、メディア セッションによってサンプルが SAR と EVR に送信され、出力デバイスにレンダリングされます。 エンコードの場合、メディア セッションを開始するとエンコード プロセスが開始されます。 セッションは、エンコードが完了したときにアプリケーションに非同期的に通知します。

次のトピックでは、パイプライン レイヤー コンポーネントを使用してエンコード トポロジを構築する手順について説明します。 ASF ファイルの読み取りと書き込みのためのコンポーネント。

Media Foundation での ASF サポート