ライターの待機時間を管理するには

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

ライターがサンプルを処理するには時間がかかります。 入力サンプルを渡してから出力サンプルを書き込むまでの時間は、ライターの待機時間と呼ばれます。 ライターの待機時間にはさまざまな要因が含まれており、いくつかの方法で削減できます。

ライターの待機時間に関係する最も明白な要因は、サンプルの圧縮にかかる時間です。 ほとんどの状況では、これをほとんどまたはまったく制御できなくなります。 帯域幅が大きな問題ではない場合は、圧縮を減らすことで待機時間を短縮できます。 もちろん、既に圧縮されているサンプルを渡すことで、最も短い待機時間を実現できます。

次の要素(通常は制御できる要素)は、サンプルがリーダーに渡される順序です。 プレゼンテーション時間の順にサンプルを渡し、すべての入力ストリーム間で入力サンプルが適切に同期されるようにすることで、待機時間を短縮できます。 異なるストリームのサンプル間のプレゼンテーション時間の不一致が大きいほど、待機時間が長くなります。 IWMWriterAdvanced::SetSyncTolerance を呼び出すことで、入力サンプル間の不一致の最大値を設定できます。

ASF ファイルの書き込み