VBR Quality-Based構成するには

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

ストリームで品質ベースの可変ビット レート (VBR) エンコードを使用して、結果のビット レート要件に関係なく、ストリーム全体に対して維持される品質レベルを指定できます。

品質ベースの VBR ビデオ ストリームの場合は、品質レベルを 1 から 100 に指定し、100 が最高の品質を表す必要があります。 現在、個別の品質設定は 30 個しかありません。 次の品質レベルは、個別の品質設定に相当します:1、4、8、 11、15、18、22、25、29、33、36、40、43、47、50、54、58、61、65、68、72、75、79、83、86、90、93、97、100。 前の一覧の 2 つの連続する値の間の数値は、低い数値と同じ品質設定に相当します。 たとえば、1 と 4 が一覧表示されるため、2 と 3 はどちらも 1 と同じ品質設定になります。

オーディオ ストリームの場合は、使用可能なモードを列挙し、ストリーム構成オブジェクトを取得できます。 詳細については、「 コーデック形式を列挙するには」を参照してください。

品質ベースの VBR ビデオを使用する場合は、WMVIDEOINFOHEADER 構造体の dwBitrate メンバーを正の値に設定する必要があります。 この値はライターでは使用されませんが、0 または負の数を渡すと、書き込み時にエラーが発生する可能性があります。

品質ベースの VBR でエンコードされるようにプロファイル内のストリームを構成するには、次の手順を実行します。

  1. WMCreateProfileManager 関数を呼び出して、プロファイル マネージャー オブジェクトを作成します。
  2. VBR サポートを追加する既存のプロファイルを開きます。 プロファイルを開く方法の詳細については、「プロファイル の操作」を参照してください。
  3. IWMProfile::GetStream または IWMProfile::GetStreamByNumber を呼び出して、使用するストリームのストリーム構成オブジェクトを取得します。
  4. IWMStreamConfig::QueryInterface を呼び出して、ストリーム構成オブジェクトの IWMPropertyVault インターフェイスへのポインターを取得します。
  5. g_wszVBREnabled プロパティの IWMPropertyVault::SetProperty を呼び出して、ストリームの VBR を有効にします。
  6. g_wszVBRQuality プロパティの IWMPropertyVault::SetProperty を呼び出して、VBR ストリームの品質レベルを設定します。
  7. IWMPropertyVault::SetProperty を使用して、g_wszVBRBitrateMaxとg_wszVBRBufferWindowMax両方を 0 に設定します。
  8. IWMProfile::ReconfigStream を呼び出して、ストリームに加えられた変更を保存します。
  9. プロファイルを保存するか、ライター オブジェクトに渡して書き込みを開始します。

VBR ストリームの構成