圧縮されたサンプルの作成

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

一部のオーディオ ストリームまたはビデオ ストリームでは、生データを渡す代わりに、既に圧縮されているサンプルを渡すことができます。 この機能は、既存のストリームをコピーしたり、サードパーティ製のコーデックで圧縮されたサンプルを書き込んだりするために使用されます。 圧縮されたサンプルを作成するプロセスは、IWMWriter::WriteSample の代わりに IWMWriterAdvanced::WriteStreamSample を使用する点を除き、圧縮されていないサンプルの作成と同じです。 圧縮されていないサンプルの記述の詳細については、「サンプル を書き込むには」を参照してください。

圧縮されたサンプルを書き込む場合、CBR プロファイルの場合、ライターは必要に応じていくつかのサンプルを削除して、指定されたビット レートとバッファー ウィンドウ値内にコンテンツを保持します。 VBR の場合、ライターはサンプルを削除しませんが、ビット レートとバッファー ウィンドウの値が正しいことを確認する方法はありません。

あるファイルから別のファイルにストリームをコピーする場合は、常に元のファイルのプロファイルから新しいファイルのプロファイルにストリーム構成オブジェクトをコピーする必要があります。 これにより、正しいビット レートとバッファー ウィンドウ情報が得られます。 圧縮ストリームをバッファー ウィンドウが低いストリームにコピーすると、ファイルの書き込み中にサンプルが削除されます。

ASF ファイルの書き込み