ASF メディア シンク

ASF メディア シンクは、アプリケーションが ASF ファイルを書き込むのを可能にするエンコード パイプラインの最後のコンポーネントです。

Media Foundation には、次の 2 種類の ASF メディア シンクが用意されています。

  • ASF ファイル シンク は、ASF メディア データをファイルにアーカイブするために使用されます。
  • ASF ストリーミング シンク は、ネットワーク経由でストリーミングできるバイト ストリームに ASF コンテンツを書き込む場合に使用されます。

ASF メディア シンクには、出力 ASF ファイル内のストリームごとに書き込むデータを表す 1 つ以上のストリーム シンクが含まれています。 Windows Vista で実行されるエンコード アプリケーションの場合は、ASF メディア シンクを作成して構成し、それをトポロジに追加して、エンコード トポロジを手動で構成する必要があります。 Windows 7 では、高速トランスコード オブジェクトを使用してトポロジを作成する場合、メディア シンクを直接作成する必要はありません。また、アプリケーションはメディア シンクまたはストリーム シンクのメソッドを呼び出しません。 高速トランスコード オブジェクトは、呼び出し元アプリケーションへの参照を返す前に、必要なメディア シンクをインスタンス化し、トポロジに追加します。 ただし、高速トランスコード オブジェクトの場合は、エンコードの種類に応じていくつかの制限が適用されます。

ASF メディア シンク オブジェクト モデル

ASF メディア シンクは IMFMediaSink インターフェイスを実装し、次のインターフェイスを公開します。 アプリケーションは、出力サンプルの生成に使用している ASF メディア シンクで QueryInterface を 呼び出すことで、これらのインターフェイスへの参照を取得できます。

インターフェイス 説明
IMFMediaSink すべてのメディア シンクに必要です。
IMFFinalizableMediaSink 生成されたメディア コンテンツをファイルに書き込む ASF ファイル シンクによって実装されます。 このインターフェイスの メソッドを使用して、データをフラッシュし、最終的な出力ファイルの ASF ヘッダー オブジェクトを更新できます。
IMFClockStateSink プレゼンテーション クロックから状態変更通知を受信します。
IMFASFContentInfo ASF ContentInfo オブジェクトは、主に ASF ヘッダー オブジェクト情報を格納する WMContainer レベル のオブジェクトです。 これは、ASF メディア シンクを作成するために使用されます。
IMFMetadata ASF ファイルのメタデータを記述するために使用されます。
IMFMetadataProvider プレゼンテーション全体またはプレゼンテーション内の 1 つのストリームのメタデータのコレクションを取得します。

 

ASF ファイル シンク

ASF ファイル シンクは、アプリケーションが ASF メディア データをファイルにアーカイブするために使用できる Media Foundation によって提供される IMFMediaSink の実装です。

パイプライン レイヤー オブジェクトを使用して新しい ASF ファイルを書き込む場合は、ファイル シンクまたはそのストリーム シンクのメソッドを作成、構成、および呼び出す必要があります。 ファイル シンクを構成したら、それをエンコード パイプラインに追加できます。

ASF ファイル シンクを使用するための一般的な手順を次に示します。

  1. ファイル シンクをインプロセスまたはアウトプロセスで作成します。
  2. すべてのストリーム、エンコード プロパティ、およびメタデータ情報を使用してファイル シンクを構成します。
  3. ストリーム シンクを列挙するか、シンク内の にストリーム番号を追跡することによって、ファイル シンクを出力トポロジ ノードに関連付けます。

次のトピックには、ASF ファイル シンクの操作に関する詳細な情報が含まれています。

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

Media Foundation での ASF サポート