メディア ファンデーションの新機能
Microsoft メディア ファンデーションは、DirectShow の後継として Windows Vista に導入されました。 もちろん、DirectShow は Windows 7 では引き続きサポートされていますが、開発者は新しいデジタル メディア アプリケーションでメディア ファンデーションを使用することをお勧めします。
メディア ファンデーションの機能強化をまとめると、次のようになります。
- MPEG-4 など、より優れた形式のサポート
- キャプチャ デバイスとハードウェア コーデックのサポート
- 簡易プログラミング モデル
- プラットフォームの機能強化
より優れた形式のサポート
メディア ファンデーションのオーディオ/ビデオ パイプラインは Windows Vista で実装されましたが、限られた一連の形式とファイル コンテナーがサポートされていたため、一部のアプリケーションは DirectShow などの以前のテクノロジにフォールバックする必要があります。 Windows 7 では、メディア ファンデーションには次のような新しいコーデック、メディア ソース、メディア シンクが含まれています。
- AAC デコーダー
- AAC エンコーダー
- AVI/WAVE ファイル ソース
- DV ビデオ デコーダー
- H.264 ビデオ デコーダー
- H.264 ビデオ エンコーダー
- MJPEG デコーダー
- MP3 ファイル シンク*
- MP4/3GP ファイル ソース
- MP4/3GP ファイル シンク
Note
MP3 ファイル シンクには、MP3 オーディオ エンコーダーは含まれません。
詳細については、「メディア ファンデーションでサポートされているメディア形式」を参照してください。
ハードウェア デバイスのサポート
メディア ファンデーションで、オーディオ/ビデオ パイプラインで次の種類のハードウェア デバイスがサポートされるようになりました。
- Web カメラなどの UVC 1.1 ビデオ キャプチャ デバイス
- オーディオ キャプチャ デバイス
- ハードウェア エンコーダーとハードウェア デコーダー
- 色空間コンバーターなどのハードウェア ビデオ プロセッサ
ハードウェア コーデックは、非常に高速なビデオ コード変換を実行できます。 たとえば、Windows Media Video (WMV) ファイルを 3GP ファイルのみサポートされる携帯電話に転送するようなアプリケーションです。 ハードウェア エンコーダーを使用して、アプリケーションはファイルをデバイスに転送する直前にバックグラウンドでコード変換できます。
ハードウェア デバイスは、メディア ファンデーションでプロキシ オブジェクトによって表され、ソフトウェア ベースのコンポーネントと同様にパイプラインで使用されます。
簡易プログラミング モデル
Windows Vista では、メディア ファンデーションは比較的低レベルの API セットを公開しました。 これらの API は柔軟ですが、単純なタスクには複雑すぎます。 Windows 7 では、C++ でメディア アプリケーションをより簡単に記述できる高レベルの新しい API が追加されています。 これらの高レベルの新しい API には、次のものが含まれます。
API | 説明 |
---|---|
ソース リーダー | ソース リーダーは、メディア ファイルから生データまたはデコードされたデータをプルします。 たとえば、ソース リーダーを使用して、ビデオ ファイルからサムネイル ビットマップを取得したり、オーディオ ファイル内の波形データを分析したりすることができます。 ソース リーダーを使用して、オーディオ キャプチャ デバイスまたはビデオ キャプチャ デバイスからライブ データを取得することもできます。 |
シンク ライター | シンク ライターを使用すると、圧縮されていないデータまたはエンコードされたデータを渡すことによって、メディア ファイルを作成できます。 たとえば、ビデオ ファイルを再エンコードしたり、Web カメラからファイルにライブ ビデオをキャプチャしたりするために使用できます。 |
コード変換 API | この機能では、最も一般的なオーディオ/ビデオ エンコード シナリオがサポートされています。 |
メディア ファンデーションでは引き続き低レベルの API を使用できます。 オーディオ/ビデオ パイプラインをより詳細に制御する必要がある場合は、これを行うことができます。
プラットフォームの機能強化
Windows 7 には、基になるメディア ファンデーション プラットフォーム API の基になる多くの機能強化が含まれています。 高度なアプリケーションでは、これらの API を直接使用できるため、他のアプリケーションは間接的に利点を得るでしょう。 WebJobs からの改善点は、以下のとおりです。
- 電力消費量とビデオ メモリ使用量を削減するためのビデオ パイプラインの変更。
- DXVA-HD: Microsoft DirectX Video Acceleration High Definition (DXVA-HD) は、ハードウェア アクセラレータによるビデオ処理用の新しい API です。 DXVA-HD は、以前の DXVA ビデオ処理 API よりも柔軟な合成モデルを提供し、高解像度のビデオ形式に適しています。
- メリット値と優先/ブロック リストを含む、ソースとデコーダーを列挙するための新しいメカニズム。 この機能により、システムの全体的な信頼性が向上します。 詳細については、次のトピックを参照してください。
SDK の変更内容
- 新しいヘッダーとライブラリ ファイル: メディア ファンデーションのヘッダーとライブラリ
- DLL と .lib の変更: Windows 7 でのライブラリの変更
- 新しい SDK サンプル:
- TopoEdit の機能強化:
- コード変換のサポート。 TopoEdit を使用したコード変換トポロジのビルドを参照してください。
- オーディオ キャプチャとビデオ キャプチャのサポート。 トポロジ メニューを参照してください。
Windows 8 の新機能
Windows 8 を使用したメディア ファンデーションの新しい更新プログラムの一部を次に示します。
- IMFCaptureEngine は、1 つ以上のキャプチャ デバイスを制御します。 属性の一覧については、エンジン属性のキャプチャを参照してください。 その他の新しいメディア キャプチャ関連インターフェイスには、IMFCapturePhotoSink、IMFCapturePreviewSink、IMFCaptureRecordSink、IMFCaptureSink、IMFCaptureSource などがあります。
- 次のメディア ファンデーション クラス拡張機能は、Windows 8 の新機能です。
- Direct3D 11 ビデオ API は Windows 8 の新機能です。 Windows 8 Desktop アプリでは Direct3D 9 ビデオ API を引き続き使用できますが、Windows ストア アプリでは新しい Direct3D 11 ビデオ API を使用する必要があります。 Microsoft Direct3D 11 ビデオの詳細については、「メディア ファンデーションでの Direct3D 11 ビデオ デコードのサポート」を参照してください。
- メディア ファンデーションの作業キューが更新され、改善されました。 詳細については、「作業キューとスレッドの機能強化」を参照してください。
- H.264 UVC 1.5 カメラ エンコーダー。
- Windows ストア アプリで使用できるメディア ファンデーション API の一覧については、「Windows ストア アプリ (マルチメディア) の Win32 と COM」を参照してください。
- メディア ファンデーションは、Windows 8 の N エディションと KN エディションには含まれません。 詳細については、「N バージョンと KN バージョンのすべての Windows 8 エディション用の Microsoft Windows Media Feature Pack」を参照してください。
関連トピック