Profiles
[このページに関連付けられている機能である Windows Media Format 11 SDK は、レガシ機能です。 これは、ソース リーダーとシンク ライターによって置き換えられます。 ソース リーダーとシンク ライターは、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、Windows Media Format 11 SDK ではなくソース リーダーとシンク ライターを使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]
プロファイルは、ASF ファイルの構成を記述するデータのコレクションです。 少なくとも、プロファイルには 1 つのストリームの構成設定が含まれている必要があります。
プロファイル内のストリーム情報には、ストリームのビット レート、バッファー ウィンドウ、およびメディア プロパティが含まれます。 オーディオとビデオのストリーム情報は、データの圧縮に使用されるコーデック (存在する場合) など、ファイル内でのメディアの構成方法を正確に説明します。
プロファイルには、そのプロファイルで作成されたファイルで使用されるさまざまな ASF ファイル機能に関する情報も含まれています。 これには、 相互除外、 ストリームの優先順位付け、 帯域幅共有、 データ ユニット拡張機能が含まれます。
以前のバージョンの Windows Media Format SDK では、事前構成済みのシステム プロファイルが提供されています。これは、一般的な種類のファイルを作成するために使用したり、アプリケーションのニーズに合わせて若干変更したりできます。 システム プロファイルは、Windows Media 9 シリーズ コーデックではサポートされていません。 これは、新しい機能が追加されたことで、ファイルの "一般的な" 種類の数が指数関数的に増加したためです。 ほぼすべてのコンテンツ作成者が、システム プロファイルによって提供される単純なソリューションを超えるニーズを持っている必要があります。 古いシステム プロファイルを開始点として引き続き使用できます。 詳細については、「 システム プロファイルの使用」を参照してください。
書き込むすべてのファイルのプロファイルをライターに指定する必要があります。 IWMWriter::SetProfile を呼び出すことで、ライターで使用するプロファイルを指定できます。
プロファイル データは、Windows Media Format SDK で使用できるいくつかの異なる形式で存在します。 プロファイル情報には、いくつかの方法でアクセスすることもできます。 これにより、プロファイルとは何か、その使用方法が混乱する可能性があります。
次の図は、SDK でのプロファイル データの使用方法を示しています。
プロファイル データには、アプリケーション内のプロファイル オブジェクト内に含まれるデータ、ディスク上の XML ファイル、ASF ファイルのヘッダー内のデータという 3 つの異なる形式があります。 これらの各形式のデータは、図の網かけの四角形として表示されます。
Profile オブジェクト内のデータ
プロファイルを編集するときは、すべてのプロファイル データをカプセル化するプロファイル オブジェクトを使用します。 プロファイル マネージャー オブジェクトを使用して、空のプロファイル オブジェクトを作成できます。 プロファイル マネージャー オブジェクトを使用して、プロファイル オブジェクトに既存のプロファイル データを読み込むこともできます。
ほとんどのプロファイル データは、プロファイルの個々の部分を表すオブジェクトを使用して追加および操作する必要があります。 これには、ストリーム構成オブジェクト、相互除外オブジェクト、帯域幅共有オブジェクト、ストリーム優先度設定オブジェクトが含まれます。 これらの各オブジェクト型は、プロファイル オブジェクトの メソッドを使用して作成できます。 これらのオブジェクトを変更しても、プロファイル オブジェクトのメソッドを使用して他のオブジェクトから更新されたデータを含めるまでは、プロファイル オブジェクトには影響しません。
XML ファイル内のデータ
プロファイル データは、.prx ファイル名拡張子を持つ XML ファイルの形式でディスクに格納されます。 Windows Media Format SDK には、最も一般的な種類の ASF ファイルをカバーするシステム プロファイルと呼ばれるプロファイルのコレクションが含まれています。 システム プロファイルは、WMSysPr9.prx という名前のファイルに格納されます。 (このファイルには、システム プロファイルの概念が使用されなくなったため、実際には Windows Media 9 シリーズのシステム プロファイルは含まれないことに注意してください)。独自のカスタム プロファイルを保存するときは、独自のファイルに保存する必要があります。
プロファイル マネージャー オブジェクトを使用すると、プロファイル オブジェクトから XML テキストの文字列にデータを保存できます。 その後、任意のファイル I/O 関数を使用して、文字列をディスク上のファイルに保存できます。
ASF ファイルのヘッダー内のデータ
ライターはプロファイルから情報を取得し、それを使用して ASF ファイルのデータ セクションに入るストリームを作成します。 プロファイル データの大部分は、ファイルの書き込み時にファイルのヘッダー セクションに格納されます。 再生時に、リーダー オブジェクト (または同期リーダー オブジェクト) は、ファイルのヘッダー内の情報にアクセスできます。 この場合、読み取りオブジェクトはプロファイル オブジェクトを作成し、ヘッダーのデータを設定します。
リーダー (または同期リーダー) を使用してプロファイル データにアクセスする場合は、プロファイル情報を変更できますが、リーダー内のファイルにこれらの変更を適用する方法はありません。 リーダー内のファイルのプロファイル情報をライターのプロファイルに適用して、リーダー内のファイルと同じ設定で新しいファイルを作成できます。 この場合、ライターでプロファイルを設定する前にプロファイル情報に加えた変更は、ライターによって登録されたプロファイル情報に反映されます。
プロファイル エディターの使用
Windows Media Format SDK を使用してプロファイルを作成するのではなく、Windows Media Encoder に含まれているユーティリティであるプロファイル エディターを使用できます。 エンコード アプリケーションで、 IWMProfileManager::LoadProfileByData メソッドを使用して、保存されたプロファイルを読み込みます。 たとえば、動的に変更されないプロファイルの数が限られている場合など、一部のシナリオでは、プロファイル エディターを使用してプロファイルを作成する方が便利な場合があります。
ただし、プロファイル エディターを使用する場合は、"ビデオ サイズ: ビデオ入力と同じ" 設定は使用しないことをお勧めします。 このチェック ボックスをオンにすると、プロファイル エディターによって、ビデオ出力の高さと幅が 0 に設定されたプロファイルが作成されます。 Windows Media Encoder は、これらのプロファイルを検出すると、ビデオ入力と一致するように正しい値を設定します。 ただし、Windows Media Format SDK のライターは自動的に設定されないため、プロファイルに何も設定されていない場合は、アプリケーションでビデオ フレーム サイズを設定する必要があります。
メモ 一部のストリーム構成項目は、プロファイルに格納されません。 プロファイル内のデータには、完成した ASF ファイルの形式が記述されています。 コーデックを構成するためにライター オブジェクトによって使用される入力メディア プロパティおよびその他の構成データは、プロファイルに保存されません。 これには、 IWMPropertyVault::SetProperty メソッドを使用して設定されたすべてのプロパティが含まれます。
関連トピック