ASF ライターの構成
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]
WM ASF ライター フィルターが作成されると、WMProfile_V80_256Video プロファイルで自動的に構成されます。 このプロファイルでは、Windows Media 9 シリーズ コーデックほど新しくない Windows Media Audio および Windows Media Video バージョン 8 コーデックが使用されます。 「 プロファイルとその他の ASF ファイル プロパティの構成」で説明されているように、Windows Media 9 シリーズ コーデックを使用するカスタム プロファイルを作成し、カスタム プロファイルを使用して WM ASF ライターを構成することをお勧めします。 フィルターを構成する前に、WM ASF ライター フィルターをフィルター グラフに追加し、他のフィルターに接続する前にフィルターを構成する必要があります。
フィルターを実行または一時停止する前に、すべての入力データにタイムスタンプを付け、すべての入力ピンを接続する必要があります。 そのため、オーディオ ストリームとビデオ ストリームを含むプロファイルでフィルターを構成した場合、フィルターはオーディオとビデオ入力ピンを作成し、フィルターを実行する前に両方のピンを接続する必要があります。 Windows Media Format SDK ではオーディオ ストリームが機能する必要があるため、WM ASF ライターには、ダミー ストリームの場合でも、常に入力オーディオ ピン (ミュートされた低ビット レートのオーディオ ストリーム) が必要です。
データ ユニット拡張機能の追加
次の操作の順序に従っている限り、フィルターが接続される前または後に、SMPTE タイム コードなどのデータ ユニット拡張機能のプロファイル ストリームを構成できます。
- IWMStreamConfig2::AddDataUnitExtension を使用して、ストリームに 1 つ以上のデータ ユニット拡張機能を追加します。
- IWMProfile::ReconfigStream を呼び出してプロファイルを更新します。
- 更新されたプロファイル オブジェクトを使用して IConfigAsfWriter::ConfigureFilterUsingProfile を呼び出します。
- ビデオ入力ピンを見つけて、 IAMWMBufferPass::SetNotify メソッドを呼び出して、アプリケーション定義 の IAMWMBufferPassCallback インターフェイスを登録します。
グラフを実行すると、フレームごとに IAMWMBufferPassCallback::Notify メソッドが呼び出され、 INSSBuffer3 インターフェイス メソッドを使用してサンプルのプロパティを取得および設定できます。
注意
逆テレシネなどのプロセッサを集中的に使用するシナリオでは、WM ASF ライターでは、一部のダウンストリーム フィルターでサポートできる出力バッファーよりも多くの出力バッファーが必要になる場合があります。 たとえば、DV デコーダーは、出力ピンに対して複数のバッファーを受け入れられません。また、特定の条件の AVI 圧縮解除器でも同じことが当てはまります。 これらのフィルターに接続しようとしたときに問題が発生した場合、またはグラフを実行しているときに問題が発生した場合は、出力ピンに任意の数のバッファーを受け入れる中間フィルターを記述する必要がある場合があります。
関連トピック