制約のない VBR を構成するには
[このページに関連付けられている機能である Windows Media Format 11 SDK は、レガシ機能です。 これは、ソース リーダーとシンク ライターによって置き換えられます。 ソース リーダーとシンク ライターは、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、Windows Media Format 11 SDK ではなくソース リーダーとシンク ライターを使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]
ストリームで制約のない可変ビット レート (VBR) エンコードを使用して、エンコードされたコンテンツで維持される平均ビット レートを指定できます。 制約のない VBR は、ストリーム全体のビット レートの分散が大きくなる可能性がある点で、通常の CBR とは異なります。
IWMStreamConfig::SetBitrate で設定されたストリームのビット レートは、目的の平均ビット レートとして使用されます。 ストリームのエンコードが完了したら、 IWMPropertyVault::GetPropertyByName を使用して 、g_wszVBRPeak と g_wszBufferAverage の 2 つの追加プロパティを取得できます。 これらのプロパティは、エンコードされたコンテンツのピーク ビット レートと、コンテンツの平均バッファー ウィンドウをそれぞれ記述します。
制約のない VBR は、2 パス エンコードと組み合わせて使用する必要があります。 プロファイルで 2 パス エンコードが設定されていません。 ストリームを書き込む前に前処理パスを実行するようにライターを構成する必要があります。 2 パス エンコードの使用の詳細については、「 Two-Pass エンコードの使用」を参照してください。
制約のない VBR でエンコードされるようにプロファイル内のストリームを構成するには、次の手順を実行します。
- WMCreateProfileManager 関数を呼び出して、プロファイル マネージャー オブジェクトを作成します。
- VBR サポートを追加する既存のプロファイルを開きます。 プロファイルを開く方法の詳細については、「プロファイル の使用」を参照してください。
- IWMProfile::GetStream または IWMProfile::GetStreamByNumber を呼び出して、使用するストリームのストリーム構成オブジェクトを取得します。
- IWMStreamConfig::QueryInterface を呼び出して、ストリーム構成オブジェクトの IWMPropertyVault インターフェイスへのポインターを取得します。
- g_wszVBREnabled プロパティの IWMPropertyVault::SetProperty を呼び出して、ストリームの VBR エンコードを有効にします。
- IWMPropertyVault::SetProperty を使用して、g_wszVBRBitrateMaxとg_wszVBRBufferWindowMax両方を 0 に設定します。
- IWMProfile::ReconfigStream を呼び出して、ストリームに加えられた変更を保存します。
- プロファイルを保存するか、ライター オブジェクトに渡します。
- 前処理パスを実行するようにライターを構成します。
関連トピック