Denys Howard
Microsoft Corporation
September 2002
日本語版最終更新日 2003 年 4 月 24 日
対象製品:
Microsoft® Windows Media エンコーダ
要約: Windows Media エンコーダ Software Development Kit (SDK) の主要なオブジェクトと追加機能について説明します。
Windows Media エンコーダ 9 シリーズ SDK のダウンロード
目次
はじめに
Windows Media エンコーダ SDK の使用
エンコード処理
追加オブジェクト
詳細について
はじめに
開発コード名「コロナ (Corona)」と呼ばれる Microsoft® Windows Media エンコーダ Software Development Kit (SDK) を使用すると、デジタル メディア コンテンツを Windows Media ベースのコンテンツにエンコードするアプリケーションを作成できます。これにより、コンテンツをストリーミングしたり、ファイルに格納したりできます。入力としては、ファイル、ビデオ、オーディオの各デバイスやその他のソースを使用できます。エンコード処理では、Microsoft コーデック (圧縮/伸張プログラム) を採用しているので、最大限の圧縮率と品質を備えたコンテンツを作成できます。
Windows Media エンコーダ SDK は、Windows Media フォーマット SDK 上に構築されていますが、低レベルの API (アプリケーション プログラミング インターフェイス) の多くは、オブジェクトとツールのセットとしてカプセル化されているので、デジタル メディアのアプリケーションを迅速に開発することができます。Windows Media エンコーダ SDK は、C++、Microsoft Visual Basic®、スクリプト言語 (Microsoft JScript® や Perl など)、C#、または Visual Basic .NET で使用できます。
この記事では、Windows Media エンコーダ SDK を使用してアプリケーションにエンコード機能を取り込むための方法を紹介します。
この記事には、以下のトピックが含まれています。
- Windows Media エンコーダ SDK の使用
ビジネス アプリケーションで Windows Media エンコーダ SDK を使用する場合の事例について説明します。
- エンコード処理
Windows Media エンコーダ SDK の使用方法について詳細に説明し、またアプリケーション内での各オブジェクトの相互作用について簡単に説明します。
- 追加オブジェクト
追加オブジェクトとその使用方法について説明します。
Windows Media エンコーダ SDK の使用
以下に、Windows Media エンコーダ SDK を使用できる事例をいくつか示します。
- ライブ コンテンツのブロードキャスト配信
新しい組織で、ライブ コンテンツの自動取り込みとブロードキャスト配信を管理するアプリケーションを作成できます。たとえば地域の交通課で、エンコード アプリケーションを作成して道路状況のライブ映像を流し、ドライバに交通渋滞を知らせて、代替のルート情報を通知できます。
- 大量データの処理
大容量の巨大ファイルを処理する必要のあるメディア製作組織では、Windows Media エンコーダ SDK を使用してバッチ処理を作成することで、次々とストリームを繰り返し取り込んでエンコードできます。企業で Windows Media エンコーダ SDK を利用すれば、スクリプト言語や Microsoft Windows Script Host を使用することで、ストリーミング メディア サービスを管理することができます。
- ユーザー設定のユーザー インターフェイスの作成
インターネット サービス プロバイダ (ISP) では、Windows Media エンコーダ SDK の機能を組み込んだユーザー インターフェイスを構築することで、デジタル メディア ストリームの取り込み、エンコード、およびブロードキャスト配信が可能になります。
- エンコード アプリケーションのリモート管理
Windows Media エンコーダ SDK を使用すると、リモート コンピュータからエンコード アプリケーションを実行、診断、および管理できます。
エンコード処理
エンコード技術をアプリケーションに組み込むためには、最初に WMEncoder オブジェクトを作成する必要があります。その他の主要オブジェクトは、このオブジェクトのプロパティとして提供されます。別々にオブジェクトを作成することで、新たに機能を追加することが可能となります。
エンコードするデジタル メディア コンテンツには、1 つまたは複数のソースを提供する必要があります。ソースとは入力ストリームのことです。ソース グループとはストリームの組み合わせです。ソース グループには、次の各タイプについて 0 または 1つのストリームが含まれます。すなわちオーディオ ストリーム、ビデオ ストリーム、リッチ メディア ストリーム、およびスクリプト ストリームです。ソース グループ内のデジタル メディア ソースは同期化されているので、エンド ユーザーは、ソース グループ全体を単一の出力として取り込むことになります。
1 回のエンコード セッションで複数のソース グループを使用できますが、同時にアクティブにできるソース グループは 1 つだけです。たとえば、「Introduction」ソース グループ、「Main」ソース グループ、および「Summary」ソース グループを定義できます。各ソース グループは、オーディオとビデオの異なるソースを使用できますが、1 つのソース グループ コレクションに結合することで、エンド ユーザーにシームレスな体験をもたらすことができます。
各ソース ストリームごとに発生元を指定する必要があります。これは、特定のタイプの発生元からコンテンツを取り込むことのできるプラグインを使用することによって指定できます。使用できるタイプのソースとしては、ファイル、ビデオまたはオーディオのデバイス、画面の取り込み、またはスクリプト ストリームです。
オーディオとビデオのデバイスを列挙して管理できるということは、Windows Media エンコーダ SDK の重要な機能です。SDK には、Windows Driver Model ドライバを使用するインストール済みのすべてのメディア デバイスの一覧から、サポートされるデバイスを選択できるインターフェイスが含まれています。
各ソース グループごとにプロファイルを指定します。プロファイルは、各入力ソースのタイプ、オーディオ ビット レート、ビデオ ビット レートと画面のサイズ、および各入力ソースに使用するコーデックなどの各設定を定義したものです。プロファイル内の情報のいくつかは、エンコードされたコンテンツにそのまま適用されますが、一部の情報は特定の入力ストリームにのみ適用されます。
ソースとその発生元、ソース グループ、プロファイル、および配信対象を定義すれば、エンコード処理が開始されます。エンコードは入力データがある限り続きます (たとえば、ファイルの最後まで続きます)。エンコード処理を意識的に停止することもできます。
出力としては、ブロードキャスト ストリーム、ファイル、またはその両方が可能です。出力をファイルにすると、ファイルに書き込むソース グループと書き込まないソース グループを指定できます。出力をストリームにすると、Windows Media サービスを実行しているコンピュータにストリームを渡すことができます。あるいは、エンコード コンピュータのポートを通じてストリームが利用されるようにできます。
追加オブジェクト
エンコード アプリケーションを実装するために使用する主要なオブジェクトは、エンコーダ オブジェクト、ソース、ソース グループとソース グループ コレクションのオブジェクト、およびプロファイル オブジェクトです。Windows Media エンコーダ SDK には、エンコード処理の微調整やデジタル デバイスの制御などに使用できる追加オブジェクトが含まれています。
セッション中のコンテンツのプレビュー
Windows Media エンコーダ SDK には、コンテンツ ストリームのプレビューまたはポストビューという 2 つの目的に使用できるデータ ビュー オブジェクトが含まれています。ストリームをプレビューするということは、エンコードのためにコーデックにストリームを渡す前にこのストリームを表示するということです。ストリームをポストビューするということは、ストリームをエンコードし、その後デコードした後にこのストリームを表示するということです。これらの 2 つのビューを比較することにより、エンコード処理を微調整してターゲットの配信対象に最大限の結果をもたらすことができます。
統計データの取得
Windows Media エンコーダ SDK には、ソース、エンコード処理、およびエンコード セッションの出力に関するさまざまな統計値を戻すオブジェクトが含まれています。たとえば、各種のオブジェクトを使用して、エンコード時の平均ビット レートとサンプル レート、作成するアーカイブ ファイルのサイズ、インデックス作成キューに残っているファイルの数などを求めることができます。
デバイスの制御
Windows Media エンコーダ SDK のもう 1 つの機能は、デジタル ビデオ (DV) カメラやテープ レコーダなどのデジタル デバイスをプログラム的に制御できるという機能です。たとえば、デバイス コントロールのプラグイン オブジェクトを使用すると、特定のフレーム位置でエンコードを開始することができ、手動でデバイスのボタンを押して希望のフレームを取り出す必要はありません。Windows Media エンコーダは、Sony Protocol for Remote-1 (9 ピン) コネクタを使用する DV デバイスの制御をサポートしています。
詳細について
アプリケーションにエンコード機能を実装する方法の詳細については、Windows Media Technologies Web ページから Windows Media エンコーダ SDK をダウンロードしてください。