C++ および Visual Basic アプリケーション開発者のためのオーディオおよびビデオ テクノロジ

Microsoft Corporation

December 2001

要約: このドキュメントでは、C、C++、Microsoft Visual Basic プログラミング言語を使用しているアプリケーション開発者を支援する、いくつかのオーディオおよびビデオ テクノロジを紹介します。

はじめに

MicrosoftR デジタル メディア プラットフォームには、C、C++、Microsoft Visual BasicR プログラミング言語を使用しているアプリケーション開発者のための、以下のオーディオおよびビデオ テクノロジが含まれています。

  • DirectShow SDK
  • DirectShow Editing Services (DES)
  • TV Technologies (DirectShow 内)
  • DVDサポート (DirectShow 内)
  • DirectX Video Acceleration
  • DirectX Audio
  • DirectX Media Objects (DMO)
  • Windows Media Player SDK
  • Windows Media Format SDK
  • Windows Media Encoder SDK
  • Windows Media Services SDK

DirectShow SDK

Microsoft DirectXR SDK に含まれている Microsoft DirectShowR により、ほぼあらゆるタイプのカスタム デジタル メディア アプリケーションの迅速な開発が可能となります。DV カムコーダー・TV カード・Web カメラ・マイクなどのソースからのライブ キャプチャから、編集・合成・エンコード・デコード、さらには二次元や三次元サーフェイス上での DVD やファイルの再生までの幅広い機能がサポートされています。

DirectShow は、データ ストリームに対して特定のタスクを実行する「フィルタ」と呼ばれるコンポーネントを使って動作します。アプリケーションは、フィルタ グラフと呼ばれる構成を通して、これらのフィルタに接続します。オペレーティング システムには多数の優れたフィルタが付属しており、カスタム フィルタを追加することも可能です。

コアの DirectShow アプリケーション プログラミング インターフェイス (API) には主に C++ を通してアクセスしますが、ファイルの再生と DVD ナビゲーションの機能は Visual Basic アプリケーションに対しても公開されています。

DirectShow コンポーネントの詳細については、「DirectShow の概要」を参照してください。

DirectShow Editing Services (DES)

Microsoft DirectShow Editing Services (DES) は、ビデオ編集に関連するタスクを大幅に単純化する API です。DES はコアの DirectShow アーキテクチャ上に作られており、ビデオ編集プロジェクトを操作するために設計されたインターフェイスのセットを提供して、DirectShow の複雑さの多くの部分を抽象化しています。

DES は、Windows Media(TM) Video (WMV) および Windows Media Audio (WMA) ファイルを含めて、さまざまな入出力形式をサポートしています。DES には C++ と Visual Basic の両方からアクセスすることができ、DirectShow の一部としてドキュメント化されています。

DirectShow Editing Services の詳細については、Microsoft DirectX 8.1 (C++) ドキュメントの「DirectShow 編集サービスの紹介」を参照してください。

TV Technologies

DirectShow には、新しい Broadcast Driver Architecture (BDA) をサポートする次世代のデジタル TV チューナー カードをベースにしたテレビジョン アプリケーションの開発を単純化する、Microsoft TV Technologies と呼ばれるコンポーネントの集まりが含まれています。Microsoft TV Technologies API は DirectShow の一部であり、C++、Visual Basic、Visual Basic Scripting Edition、またはMicrosoft JScriptR からアクセスできます。

Microsoft TV Technologies には以下のコンポーネントが含まれています。

  • ネットワークの構成と制御、MPEG-2 の逆二重化、および DVB と ATSC を含む主なデジタル TV 標準のためのテーブル解析と IP データ配信を処理するフィルタ。
  • TV アプリケーションの開発を大幅に単純化し、デジタルとアナログの両方の TV チューナーの自動化サポートを提供する、Video Control という名前の Microsoft ActiveXR コントロール。
  • Electronic Program Guide (EPG) データやその他の情報の格納と取り出しのための API である Guide Store。
  • アプリケーションをネットワーク タイプに固有のチューニングの詳細から隔離し、アプリケーションが変更なしで新しいネットワーク タイプや非標準的なネットワーク タイプを利用できるようにするオブジェクトのセット。

Microsoft TV Technologies の詳細については、Microsoft DirectX (C++) ドキュメントの「Microsoft TV テクノロジ」を参照してください。

DVD サポート

DirectShow SDK は、DVD アプリケーション作成のための 3 つのオプションを提供しています。C++ 開発者は、DVD Navigator ソース フィルタが公開している COM インターフェイスを使用できます。Visual Basic 開発者は、MSWebDVD Active X コントロールまたは Video Control を使用できます。この 3 つのオプションは、いずれも DVD Annex J コマンド セットを完全にサポートし、PC ベースの DVD アプリケーションに適した追加機能を提供しています。

DirectShow における DVD サポートの詳細については、Microsoft DirectX (C++) ドキュメントの「DVD アプリケーション」のトピックを参照してください。

DirectX Video Acceleration

Microsoft DirectX Video Accelerationは、デジタル ビデオのデコードのアクセラレーションのためのAPIと、それに対応するDDIを提供します。API は C または C++ で書かれたソフトウェア ビデオ デコーダの開発者が使用し、DDIはビデオ デバイス ドライバの開発者が使用します。これらのインターフェイスを使用することで、ユーザー モード ソフトウェア デコーダとハードウェア アクセラレーション機能の間のクロス ベンダの互換性が実現されます。

DirectX VAの詳細については、「Microsoft DirectX VA: Video Acceleration API/DDI」を参照してください。

DirectX Audio

Microsoft DirectX Audio は、DirectX SDK 内の 2 つのアプリケーション プログラミング インターフェイス、DirectSoundR と DirectMusicR から構成されます。これらの API は、動的なサウンドトラックのための完全なソリューションを構成しています。

DirectSound はウェーブフォーム オーディオの再生を処理します。アプリケーションは DirectSound API を使って、レイテンシが小さいことが必須条件のサウンド エフェクトを再生できます。

DirectMusic は、MIDI およびウェーブフォーム データと、DirectMusic Producer で作成されたコンテンツをロードして再生し、応答性の高い可変的なサウンドトラックを作成するためのシステムを提供します。サウンドはソフトウェア シンセサイザか、利用可能ならば互換性のあるハードウェア シンセサイザでミキシングされ、DirectSound バッファを通してストリーミングされます。DirectX Audio SDK には、C++ または Visual Basic を通してアクセスできます。

DirectX Audio の詳細については、「DirectX Audio ロードマップ」を参照してください。

DirectX Media Objects (DMO)

オーディオまたはビデオのエフェクトまたはデコーダーを作成している場合、DirectShow フィルタを作成するよりも簡単な方法として、Microsoft DirectX Media Object (DMO) を作成するというものがあります。DMOは、DirectShow フィルタ グラフの中で、DirectX オーディオ アプリケーションの中で、およびアプリケーション内のスタンドアロン モジュールとして独立に使用できます。

DMO の作成には DirectX SDK を使用します。DirectShow のヘルプ ファイルにドキュメントがありますが、DirectShow にはいかなる形でも依存していません。DMO の作成は C++ でしか行えず、C++ クライアント アプリケーションからしか使用できません。詳細については、DirectShow SDK を参照してください。

DirectX Media Objects の詳細については、DirectX SDK ドキュメントの「DirectX Media Object の概要」を参照してください。

Windows Media Player SDK

Microsoft Windows Media Player SDK は、バージョン 6.4 の Windows Media Player を使用している場合には、Microsoft Visual C++R または Visual Basic を通してアクセスできます。Windows Media Player 7.1 は、Visual Basic または Visual C++ を IDispatch を通して使用するアプリケーションへのコントロールの埋め込みをサポートしていません。また、バージョン 7.1 は Netscape Navigator プラグインをサポートしていません。これらの理由から、エンド ユーザーが Windows Media Player をインストールするときには、バージョン 6.4 と 7.1 の両方のコントロールがインストールされます。新しいコントロールと古いコントロールは、異なる ClassID 番号、異なるオブジェクト モデル、および異なる機能のセットを持っています。アプリケーション内で Windows Media Player をホスティングする必要がある場合はバージョン 6.4 を、Web ページ内で Windows Media Player をホスティングする場合にはバージョン 7.1 を使用してください。

詳細については、Windows Media Player 7.1 SDK を参照してください。

Windows Media Format SDK

Microsoft Windows Media Format SDKは、Windows Mediaオーディオ、ビデオ、および、Digital Rights Management (DRM)を実装するファイルを含めたスクリプト ファイルの読み書きを行うアプリケーションの作成に使用します。SDKを使用すると、サーバー サイド ストリーミング アプリケーションや、クライアント サイド再生アプリケーションまたはファイル変換アプリケーションを作成できます。

Windows Media Format SDKは C++ のみをサポートしています。

詳細については、Microsoft Windows Media Format SDK の概要 を参照してください。

Windows Media Encoder SDK

Microsoft Windows Media Encoder アプリケーションは、ライブまたは格納済みのオーディオおよびビデオ コンテンツを、Windows Media ファイルまたはストリームに圧縮します。開発者は、自分のコンピュータに接続されたデバイスからマルチメディア プロダクションを作成し、オーディオ/ビジュアル ファイルを Windows Media Format に変換し、Windows Media ベースのコンテンツをローカル ファイルに保存するか、インターネットにブロードキャストできます。C++ または Visual Basic で書かれたアプリケーションが、この SDK を使って、エンコーダのユーザー インターフェイスとファイル変換およびストリーミング機能をカスタマイズできます。

詳細については、Windows Media Encoder SDK を参照してください。

Windows Media Services SDK

Windows Media Services SDK は Windows Media SDK に含まれています。この SDK は、強力なオートメーション ベースの API を使って Windows Media サーバー アプリケーションを開発しようとしている人を対象としています。この SDK により、C++、Visual Basic、またはスクリプティング言語を使用している開発者は、Windows Media サーバーをプログラム的に管理して、ユニキャストまたはマルチキャスト対応のネットワーク上でクライアントにデジタル メディア コンテンツを送信することができます。

詳細については、Windows Media Services SDK を参照してください。