四角形以外のピクセルを使用したストリームの書き込み

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

Windows メディア プレーヤーで正しく表示される正方形以外のピクセルを使用してビデオ ストリームを作成するには、2 つの方法があります。 最初の手法では、ファイル ヘッダーでストリーム レベルの属性を設定します。 2 つ目の手法では、プロファイル内のストリームにデータ ユニット拡張を追加し、書き込まれるすべてのサンプルでその値を設定します。

ストリーム レベルのヘッダー属性を使用してピクセル縦横比を設定するには

  1. ライター オブジェクトを設定します。 詳細については、「 ASF ファイルの書き込み」を参照してください。
  2. 1 つ以上のビデオ ストリームを使用してプロファイルを作成または読み込みます。 詳細については、「 ライターでプロファイルを使用するには」を参照してください。
  3. IWMWriter::SetProfile を呼び出します。 (ヘッダー属性を設定する前に、必ずこのメソッドを呼び出してください)。
  4. QueryInterface を呼び出して IWMHeaderInfo3 インターフェイスを取得し、AddAttribute を 2 回呼び出して、ビデオ ストリームのストリーム レベルの属性として AspectRatioXAspectRatioY を追加します。 これらの属性は DWORD 値です。
  5. ファイルを書き込みます。

データ ユニット拡張機能を使用してピクセル縦横比を設定するには

書き込む前に:

  1. ライター オブジェクトを設定します。 詳細については、「 ASF ファイルの書き込み」を参照してください。
  2. 1 つ以上のビデオ ストリームを使用してプロファイルを作成または読み込みます。 詳細については、「 ライターでプロファイルを使用するには」を参照してください。
  3. プロファイル内の (任意のメディアの種類の) ストリームごとに 、IWMStreamConfig::SetStreamName を呼び出して、任意の一意の名前を指定します。 2 つのストリームに同じ名前を付けないでください。
  4. ビデオ ストリームで IWMStreamConfig2::AddDataUnitExtension を使用して、ピクセル縦横比のデータ ユニット拡張機能を追加します。
  5. IWMWriter::SetProfile を呼び出します。
  6. ファイルを書き込みます。

書き込み中:

  • 各サンプルについて 、INSSBuffer3::SetProperty を呼び出し、WM_SampleExtensionGUID_PixelAspectRatio プロパティと正しい値を指定します。 縦横比の値は、2 つの連結された 2 桁の値として書き込まれます。 たとえば、16:9 は 1609 または 0x0649 として書き込まれます。 これは常に 2 バイトの値です。

正方形以外のピクセルでビデオ ストリームを読み書きするには