ASF ファイルの書き込み

[このページに関連付けられている機能である Windows Media Format 11 SDK は、従来の機能です。 ソース リーダーシンク ライターに置き換わりました。 ソース リーダーシンク ライターは、Windows 10とWindows 11用に最適化されています。 Microsoft では、可能であれば、新しいコードで Windows Media Format 11 SDK ではなくソース リーダーシンク ライターを使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]

Windows Media Format SDK の writer オブジェクトを使用して、デジタル メディア データから ASF ファイルを作成できます。 ライター オブジェクトのインスタンスを作成するには、 WMCreateWriter 関数を呼び出します。 ライター オブジェクトは、Windows Media Format SDK の外部にあるコーデックなど、さまざまなコンポーネントの機能を調整します。

ライター オブジェクトの基本的な機能は、次の手順に分けることができます。 これらの手順では、"アプリケーション" とは、Windows Media Format SDK を使用して記述するプログラムを指します。

  1. アプリケーションは、ASF ファイルの作成に使用するプロファイルをライターに提供します。 ライターはプロファイル データを読み込むとき、プロファイルの各接続に入力番号を割り当てます。
  2. アプリケーションは、書き込むファイルの出力ファイル名をライターに提供します。 ライターは、ファイルの作成と入力を管理するライター ファイル シンク オブジェクトを作成します。 詳細については、「 ライター ファイル シンク オブジェクト」を参照してください。
  3. ライターは、プロファイル内の情報に基づいて新しいファイルのヘッダーを作成します。
  4. アプリケーションは、圧縮されていないサンプルをライターに渡します。 サンプルは、バッファー オブジェクトにラップされたバッファーに一度に 1 つずつ渡されます。 アプリケーションは、各ストリームのサンプルを同時に渡して、ライターがプレゼンテーション時の順序ですべてのサンプルを受け取るようにする必要があります。
  5. ライターは、圧縮のために適切なコーデックにサンプルを渡します。 ライターは、圧縮されたサンプルを受け取ると、他のストリームからのサンプルとインターリーブして、ストリームに関係なく、サンプルがプレゼンテーションの時間順にファイルに入るようにします。 その後、サンプル データがパケットに作成され、ファイルのデータ セクションに書き込まれます。
  6. すべてのサンプルが処理されると、ライターはファイルにインデックスを追加して、シークのパフォーマンスを向上させることができます。

これらの手順は、WMStats サンプル アプリケーションなどに示されています。 詳細については、「 サンプル アプリケーション」を参照してください。

ライターでは、より高度な機能もサポートされているため、次の操作を行うことができます。

  • ファイルのヘッダーでメタデータを編集します。
  • プレ圧縮されたサンプルを記述します。
  • ライブ データをストリーミングするためにネットワーク シンクに書き込みます。
  • 高度なファイル制御オプションのために、ファイル シンクに書き込みます。
  • コンテンツをエンド ユーザーに配信するサーバーに配布するためにシンクをプッシュする書き込み。
  • 出力を検証するためのポストビュー サンプルを提供します。
  • ライター パフォーマンス統計を配信します。

以降のセクションでは、ライター オブジェクトの使用方法について詳しく説明します。

セクション 説明
プロファイルとライターを使用するには ライターで使用するプロファイルを指定する方法について説明します。
入力の操作 ライターで入力設定を識別して構成する方法について説明します。
ライターを使用してメタデータを編集するには ライターを使用して新しいファイルのメタデータを編集する方法について説明します。
サンプルを書き込むには ライターにサンプルを渡す方法について説明します。
データユニット拡張機能の設定 拡張データをサンプルに追加する方法について説明します。
圧縮されたサンプルの書き込み 事前圧縮されたサンプルをライターに渡す方法について説明します。
イメージ ストリームの書き込み イメージ ストリームの入力を構成する方法について説明します。
ビデオ 画像サンプルの作成 ビデオ イメージのサンプルを構成する方法について説明します。
可変ビット レート ストリームの書き込み 可変ビット レート (VBR) ストリームを書き込む方法について説明します。
Two-Pass エンコードの使用 ファイルを書き込む前にコーデックで予備パスを実行する方法について説明します。
挿入を強制Key-Frameするには サンプルをキー フレームとしてエンコードするようにコーデックを手動で強制する方法について説明します。
ライターの待機時間を管理するには ライターがサンプルを出力ファイルまたはシンクに処理する時間を最小限に抑える方法について説明します。
ライター シンクの操作 ライター シンクを使用して、ファイルまたはネットワークの場所にコンテンツを配信する方法について説明します。
ライター統計を取得するには ライターの統計を取得する方法について説明します。
ライター ポストビューを使用するには 検証用のファイルを記述するときに、圧縮されていないサンプルを取得する方法について説明します。

 

プログラミング ガイド

ライター ファイル シンク オブジェクト

ライター ネットワーク シンク オブジェクト

ライター オブジェクト