いわゆるWebCamというものを、自分で作成するプログラムはどうすれば作成できるのか、というのを調査している。

一番手っ取り早いのは、多分OpenCVを使用してcvQueryFrameで取ってくる方法だと思われるが、USB Video Classの機能をもっと使用することを考えているので(Extension Unitsというのを使いたい)、cvQueryFrameは高レベルすぎる。

Windows VistaからMedia FoundationというAPIが提供されており、これを使用するのが推奨のようだ。とりあえずMFCaptureD3D Sampleのページから、サンプルプログラムをダウンロード(Download from MSDN Code Galleryというリンク)し、VS Express for Desktopでビルドして実行したら、正常にWebCamから動画をキャプチャ、表示できることが確認できた。試したカメラはYUV2形式のデータだった。

追記: どうやらExtension Unitsは、DirectShowのAPIのようだ。果たしてMedia Foundationを使ったプログラムでも使用できるのか?よく分からない。さっぱりMedia Foundationは諦めて、DirectShowのサンプルでも探した方が良いかも知れない...

DirectShowのプログラミングには、良い情報源(体系的な資料)が無いような気がする。知っている人は知っているが、一種の業界人の知識になっているのではなかろうか... 断片的な情報をつなげて理解していくのは大変だ。

Comments