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 ファイル シンクを使用するための一般的な手順を次に示します。
- ファイル シンクをインプロセスまたはアウトプロセスで作成します。
- すべてのストリーム、エンコード プロパティ、およびメタデータ情報を使用してファイル シンクを構成します。
- ストリーム シンクを列挙するか、シンク内の にストリーム番号を追跡することによって、ファイル シンクを出力トポロジ ノードに関連付けます。
次のトピックには、ASF ファイル シンクの操作に関する詳細な情報が含まれています。
関連トピック