WM ASF ライター フィルター (DirectShow)
[このページに関連付けられている機能である DirectShow はレガシ機能です。 これは、 MediaPlayer、 IMFMediaEngine、 メディア ファンデーションの Audio/Video Captureに置き換えられました。 これらの機能は、Windows 10 および Windows 11 用に最適化されています。 新しいコードでは、可能な場合は、 DirectShowではなく、 MediaPlayer、 IMFMediaEngine および メディア ファンデーションの Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存コードを、新しい API を使用するように可能であれば書き直すことを提案しています。]
WM ASF ライターは、Windows Media™ Format SDK で提供されるライター オブジェクトのラッパー フィルターです。 このフィルターは、可変数の入力ストリームを受け入れ、ADVANCED Systems Format (ASF) ファイルを作成します。 フィルターはすべての圧縮と多重化を処理します (ただし、圧縮メカニズムはバイパスできます)。 WM ASF ライターは、デジタル ビデオ (DV) キャプチャ、オーディオの再圧縮、ネットワーク ストリーミング用の Audio-Video Interleaved (AVI) または MPEG マルチメディア ファイルの変換など、さまざまなシナリオで使用できます。 このフィルターは、Microsoft DirectShow で Microsoft® Windows Media™ Audio ファイルと Windows Media Video ファイルを作成する唯一の方法です。
詳細については、「 DirectShow での ASF ファイルの作成」を参照してください。
Label | 値 |
---|---|
フィルター インターフェイス | IAMFilterMiscFlags、 IBaseFilter、 IConfigAsfWriter、 IConfigAsfWriter2、 IFileSinkFilter2、 IMediaSeeking、 IPersistStream、 IServiceProvider、 ISpecifyPropertyPagesI WMIndexer2、 IWMHeaderInfo、 IWMWriterAdvanced2 |
入力ピン メディアの種類 | ASF プロファイルによって異なります。 通常、圧縮されていないオーディオとビデオの種類ですが、フィルターは ASF プロファイルと一致する場合、圧縮された種類を受け入れます。 |
入力ピン インターフェイス | IAMStreamConfig、 IAMWMBufferPass、 IMemInputPin、 IPin、 IServiceProviderさらに、ピンは次の Windows Media Format SDK インターフェイスを公開します。 IWMStreamConfig2 ( IServiceProvider を介して) |
出力ピン メディアの種類 | 該当なし。 |
出力ピン インターフェイス | 該当なし。 |
CLSID のフィルター処理 | CLSID_WMAsfWriter |
プロパティ ページ CLSID | CLSID_AsfWriterProperties |
Executable | Qasf.dll |
価値 | MERIT_DO_NOT_USE |
フィルター カテゴリ | 指定なし |
解説
このフィルターには、Windows Media Format Software Development Kit (SDK) とその基になる依存関係が必要です。
フィルター上の入力ピンの数は、ASF ストリームのプロファイルまたはプロファイル識別子に応じて異なります。
入力ピンは、 IAMStreamConfig インターフェイスの 1 つのメソッド ( IAMStreamConfig::GetFormat をサポートします。 その他のすべてのメソッドは、E_NOTIMPLを返します。 GetFormat メソッドを呼び出して、現在の ASF プロファイルで定義されているピンの宛先圧縮形式を照会します。 IConfigAsfWriter インターフェイスを使用してプロファイルを設定します。
フィルターの IServiceProvider インターフェイスを使用して、Windows Media Format SDK で定義されている IWMWriterAdvanced2 インターフェイスへのポインターを取得できます。 IWMWriterAdvanced2 インターフェイスを使用して、ソース ビデオがインターレースされるときにビデオのインターレース解除を制御できます。 インターレース解除モードを設定するには、 IWMWriterAdvanced2::SetInputSetting を呼び出します。 dwInputNum パラメーターには、IEnumPins インターフェイスによって列挙されるビデオ入力ピンの 0 から始まるインデックスを使用します。
次の例は、このインターフェイスのクエリを実行する方法を示しています。
// Assume that pAsfWriter is a valid IBaseFilter pointer.
IServiceProvider *pProvider = NULL;
IWMWriterAdvanced2 *pWMWA2 = NULL;
hr = pAsfWriter->QueryInterface(
IID_IServiceProvider,
(void**)&pProvider
);
if (SUCCEEDED(hr))
{
hr = pProvider->QueryService(
IID_IWMWriterAdvanced2,
IID_IWMWriterAdvanced2,
(void**)&pWMWA2
);
pProvider->Release();
if (SUCCEEDED(hr))
{
// Use pWMWA2. (Not shown.)
pWMWA2->Release();
}
}
アプリケーションでは、IWMWriterAdvanced2 インターフェイスが継承する IWMWriterAdvanced メソッドを使用しないでください。 これらのメソッドを呼び出すと、フィルターの操作が妨げられる可能性があります。
このフィルターでサポートされているファイル書き込みモードはAM_FILE_OVERWRITEのみです。 IFileSinkFilter2::GetMode を参照してください。
Windows Media Format SDK ランタイムが WM ASF ライター フィルターにWMT_STATUSメッセージを送信すると、フィルターによって EC_WMT_EVENT イベントとして転送されます。
関連トピック