次の方法で共有


DirectShow システムの概要

マルチメディアの課題

マルチメディアを扱う作業にはいくつかの大きな課題がある。

  • マルチメディア ストリームには、非常に高速に処理しなければならない大量のデータが含まれている。
  • オーディオとビデオを同期し、同時に開始および終了し、同じレートで再生されるようにする必要がある。
  • データのソースは、ローカル ファイル、コンピュータ ネットワーク、テレビ放送、ビデオ カメラなど、多種多様である。
  • データのフォーマットも、AVI (Audio-Video Interleaved)、ASF (Advanced Streaming Format)、MPEG (Motion Picture Experts Group)、DV (Digital Video) など、さまざまである。
  • プログラマには、エンドユーザーのシステムでどのようなハードウェア デバイスが使われているかをあらかじめ知る方法がない。

DirectShow ソリューション

DirectShow は、これらの課題に対処するように設計されている。設計の主な目標は、データ転送、ハードウェアの違い、および同期の問題をアプリケーションから切り離すことによって、Windows® プラットフォームでのデジタル メディア アプリケーション作成作業を容易にすることである。

DirectShow では、ビデオおよびオーディオのストリーミングに必要なスループットを実現するために、可能な限り DirectDraw® および DirectSound® を使う。これらのテクノロジは、ユーザーのサウンド カードやグラフィック カードに効率的にデータをレンダリングする。DirectShow では、メディア データをタイムスタンプ付きのサンプルにカプセル化することによって再生を同期する。さまざまなソース、フォーマット、およびハードウェア デバイスを処理するために、DirectShow ではモジュール化されたアーキテクチャを使っている。このアーキテクチャでは、アプリケーションは "フィルタ" と呼ばれる複数のソフトウェア コンポーネントを組み合わせて対応する。

DirectShow には、Windows Driver Model (WDM) に基づくキャプチャおよびチューニング デバイスをサポートするフィルタと、従来の Video for Windows (VfW) キャプチャ カードやオーディオ圧縮マネージャ (ACM) およびビデオ圧縮マネージャ (VCM) のインターフェイス用に作成された CODEC をサポートするフィルタが含まれている。

次の図は、アプリケーション、DirectShow コンポーネント、DirectShow がサポートするハードウェア コンポーネントおよびソフトウェア コンポーネントの関係を示している。

上位レベルのアーキテクチャ

この図に示されているように、DirectShow フィルタは、ローカル ファイル システム、TV チューナーやビデオ キャプチャ カード、VfW CODEC、ビデオ ディスプレイ (DirectDraw または GDI 経由)、サウンド カード (DirectSond 経由) など、多種多様なデバイスと通信し、これらのデバイスを制御する。したがって、DirectShow は、これらのデバイスに関する多くの複雑な問題からアプリケーションを隔離する。また、DirectShow は特定のファイル フォーマットについて、ネイティブな圧縮フィルタおよびデコンプレッサ フィルタも提供する。