DirectShow を使用する理由
[このページに関連付けられている機能である Windows Media Format 11 SDK は、レガシ機能です。 これは、ソース リーダーとシンク ライターによって置き換えられます。 ソース リーダーとシンク ライターは、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、Windows Media Format 11 SDK ではなくソース リーダーとシンク ライターを使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]
アプリケーションが Windows Media Format SDK ではなく DirectShow を直接使用する理由には、DirectShow ストリーミング アーキテクチャの利便性とハードウェアへのアクセスの 2 つのメイン理由があります。
利便性
DirectShow ストリーミング アーキテクチャでは、Windows Media Audio ファイルまたは Windows Media Video ファイルを再生するために数回のメソッド呼び出ししか必要としません。 ファイルの作成も簡略化されています。 フィルターで IConfigAsfWriter インターフェイスを使用してプロファイルを指定するだけで、DirectShow はストリームのレンダリングまたは書き込みに必要なコンポーネントを自動的に読み込み、メディア データのフローを転送および同期するためのメカニズムを提供します。 DirectShow は、さまざまな形式のコンテンツを Windows メディア形式に変換する場合に特に便利です。 さまざまな種類のファイルと圧縮をデコードし、デコードされたストリームを WM ASF ライター フィルターにフィードする DirectShow フィルター グラフを作成できます。 これに対し、この SDK の UncompAVItoWMV サンプルは、圧縮されていない AVI ファイルでのみ機能します。 テキスト ストリームと任意のデータ ストリームは、DirectShow を使用して作成またはレンダリングすることもできますが、これらのストリームを処理するためのカスタム DirectShow フィルターを作成する必要がある場合があります。
ハードウェアへのアクセス
DirectShow は、1394 DV カメラ、テレビ チューナ、USB Web カメラなどの Windows ドライバー モデル (WDM) ベースのハードウェア デバイスにアプリケーション コードがアクセスする唯一の方法です。 アプリケーションで WDM ベースのハードウェア デバイスからデータを直接キャプチャし、それを Windows Media Format にトランスコードする必要があり、Windows Media Encoder SDK がニーズに合わない場合は、DirectShow が唯一の代替手段です。 DirectShow は、Video for Windows に基づいてレガシ デバイスにアクセスするためにも使用できます。