DirectShow システムの概要
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]
マルチメディアの課題
マルチメディアの操作には、いくつかの大きな課題があります。
- マルチメディア ストリームには大量のデータが含まれており、非常に迅速に処理する必要があります。
- オーディオとビデオが同時に開始および停止し、同じ速度で再生されるように、オーディオとビデオを同期する必要があります。
- データは、ローカル ファイル、コンピューター ネットワーク、テレビ放送、ビデオ カメラなど、多くのソースから取得できます。
- データは、Audio-Video インターリーブ (AVI)、Advanced Streaming Format (ASF)、Motion Picture Experts Group (MPEG)、Digital Video (DV) など、さまざまな形式で提供されます。
- プログラマは、エンドユーザーのシステムに存在するハードウェア デバイスを事前に把握していません。
DirectShow ソリューション
DirectShow は、これらの各課題に対処するように設計されています。 そのメイン設計目標は、データ 転送、ハードウェアの違い、同期の複雑さからアプリケーションを分離することで、Windows プラットフォームでデジタル メディア アプリケーションを作成するタスクを簡略化することです。
ビデオとオーディオのストリーミングに必要なスループットを実現するために、DirectShow は可能な限り Direct3D と DirectSound を使用します。 これらのテクノロジは、ユーザーのサウンド カードとグラフィックス カードにデータを効率的にレンダリングします。 DirectShow は、タイムスタンプ付きのサンプルにメディア データをカプセル化して再生を同期します。 DirectShow は、可能なさまざまなソース、形式、ハードウェア デバイスを処理するために、モジュールアーキテクチャを使用します。このアーキテクチャでは、アプリケーションがフィルターと呼ばれるさまざまなソフトウェア コンポーネントを組み合わせて一致 します。
DirectShow には、Windows ドライバー モデル (WDM) に基づくデバイスのキャプチャとチューニングをサポートするフィルターと、以前の Video for Windows (VfW) キャプチャ カードをサポートするフィルター、オーディオ圧縮マネージャー (ACM) およびビデオ圧縮マネージャー (VCM) インターフェイス用に作成されたコーデックが用意されています。
次の図は、アプリケーション、DirectShow コンポーネント、および DirectShow がサポートするハードウェアコンポーネントとソフトウェア コンポーネントの間の関係を示しています。
次に示すように、DirectShow フィルターは、ローカル ファイル システム、TV チューナ、ビデオ キャプチャ カード、VfW コーデック、ビデオ表示 (DirectDraw または GDI を介)、サウンド カード (DirectSound 経由) など、さまざまなデバイスと通信し、制御します。 したがって、DirectShow は、これらのデバイスの複雑さの多くからアプリケーションを絶縁します。 DirectShow には、特定のファイル形式に対するネイティブ圧縮フィルターと圧縮解除フィルターも用意されています。
関連トピック