見出し画像

62. Windows Media Foundation を試す ~ その1

前回の記事                       次回の記事

はじめに

今回は、Microsoft のドキュメント群からすると、Windows で動画や音声を扱う場合の標準フレームワークと思われる Microsoft Media Foundation を試すことにします。

Microsoft Media Foundation

このフレームワークに関する解説は、
Microsoft メディア ファンデーション - Win32 apps | Microsoft Learn
で詳細な解説が書いてあります。このページの冒頭の文を引用すると、

Microsoft Media Foundation を使用すると、Windows Vista 以降でデジタル メディアを使用するためのアプリケーションとコンポーネントを開発できます。

Media Foundation は、開発者、コンシューマー、コンテンツ プロバイダーが、堅牢性、比類のない品質、シームレスな相互運用性を備えたプレミアム コンテンツの新しい波を受け入れることができる、Windows 向けの次世代マルチメディア プラットフォームです。

Microsoft メディア ファンデーション - Win32 apps | Microsoft Learn

ちょっと話は逸れますが、私が Microsoft Japan に World Wide Embedded Developer Evangelist として入社した年にリリースされた Windows Vista で始めて搭載された フレームワークです。
商業的には失敗した感のある Windows Vista という OS ですが、それ以前の32 Bit をベースにした Windows XP 系統と、64 Bit をベースにした Windows NT を統合、というか、2006年当時、脆弱性やセキュリティや DLL 競合といった多くの Issue を解決するべく、アーキテクチャを一新した OS でした。詳しく見ると、Windows Presentation Framework、Driver アーキテクチャをはじめとして技術的に面白いものが結構あったので、色々といじくった覚えがあります。この Media Foundation についても、動画+音声の再生や加工に関する肝が色々と考慮されていて興味深く思ったものです。
ちなみに、Windows Presentation Foundation は、その以前の Windows Forms が、Graphic アクセラレータの有り無しに合わせて使う API を変えなければならなかったのを、その差異をこの Framework が吸収してくれるので、3D やアニメーションなどグラフィックス描画を必要とするアプリを容易に開発できるようになった仕組みです。このフレームワークに合わせて、MVVVM アーキテクチャを容易に使いこなすための XAML もリリースされて同僚のエバンジェリスト達が活発に普及啓発したのを覚えています。
そんな経緯から、現代の Windows デスクトップアプリの GUI は、WPF:Windows Presentation Framework(または、その派生型の Universal Windows Platform)を使って開発するのが標準です。Windows Forms もまだ生き残っているようですが、更にその前から存在する Microsoft Foudation Classes(パフォーマンスを限界まで考慮する様なアプリケーションで採用)を使わなければならないアプリケーションの開発以外では、この WPF  を使うのが基本です。

さて、本題の Windows Media Foundation ですが、API の説明は、
Microsoft Media Foundation - Win32 apps | Microsoft Learn
で公開されています。このページのタイトルからも判る通り、この API セットは、昔々の Windows から連綿と続く、Win 32 API(Windows 32 API)として提供されています。このフレームワークの本体は、COM(Component Object Model) で実装されています。動画や音声は基本、ディスプレイ(+グラフィックアクセラレーター)、スピーカー、マイク等のハードウェアと密に絡むので、まぁ、そうなんでしょうね。
プログラミング言語は、Visual C++ を使うのが基本です。
ちなみに、Windows OS 本体も、COM の塊で実装されています。

ここから先は

25,536字 / 11画像

2022年3月にマイクロソフトの中の人から外の人になった Embedded D. George が、現時点で持っている知識に加えて、頻繁に…

この記事が気に入ったらサポートをしてみませんか?