制約付き VBR を構成するには

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

ストリームで制約付き可変ビット レート (VBR) エンコードを使用して、エンコードされたコンテンツで維持される平均ビット レートを指定できます。 また、ストリームの最大ビット レートと、必要な最大バッファー ウィンドウも指定します。

エンコードする前に、制約付き VBR ストリームの平均ビット レートが何であるかはわかりませんが、大まかな見積もりを使用できます。 一般的なルールとして、指定した最大ビット レートは、最終的に平均ビット レートの 2 ~ 3 倍になります。

制約付き VBR は、2 パス エンコードと組み合わせて使用する必要があります。 2 パス エンコードはプロファイルに設定されていません。 ストリームを書き込む前に、前処理パスを実行するようにライターを構成する必要があります。 2 パス エンコードの使用の詳細については、「 Two-Pass エンコードの使用」を参照してください。

制約付き VBR エンコードを使用するようにプロファイル内のストリームを構成するには、次の手順を実行します。

  1. WMCreateProfileManager 関数を呼び出して、プロファイル マネージャー オブジェクトを作成します。
  2. VBR サポートを追加する既存のプロファイルを開きます。 プロファイルを開く方法の詳細については、「プロファイル の操作」を参照してください。
  3. IWMProfile::GetStream または IWMProfile::GetStreamByNumber を呼び出して、使用するストリームのストリーム構成オブジェクトを取得します。
  4. IWMStreamConfig::QueryInterface を呼び出して、ストリーム構成オブジェクトの IWMPropertyVault インターフェイスへのポインターを取得します。
  5. g_wszVBREnabled プロパティの IWMPropertyVault::SetProperty を呼び出して、ストリームの VBR エンコードを有効にします。
  6. IWMPropertyVault::SetProperty の呼び出しを使用して、g_wszVBRBitrateMaxおよびg_wszVBRBufferWindowMaxプロパティに必要な最大値設定します。
  7. IWMProfile::ReconfigStream を呼び出して、ストリームに加えられた変更を保存します。
  8. プロファイルを保存するか、ライター オブジェクトに渡します。
  9. 前処理パスを実行するようにライターを構成します。

VBR ストリームの構成