DirectShowを用いた動画キャプチャーでメディアタイプを変更するためには?

解決


ソウメイ  2006-04-12 20:14:05  No: 61208  IP: 192.*.*.*

DirectShowを用いて、USBカメラから動画キャプチャー(無圧縮AVI)するプログラムを作っています。

メディアタイプ(サブタイプ)がMEDIASUBTYPE_RGB24で作成することはできたのですが、
より長時間のキャプチャーを行いたく、他のメディアタイプ(MEDIASUBTYPE_RGB8など)でキャプチャーを行えるプログラムを作成しようと思ったのですが、よくわかりません・・・。

静止画であれば、ISampleGrabber::SetMediaTypeで可能だと思うのですが、
動画の場合はどうしたらいいのか、どなたかご教授頂ければ幸いです。

編集 削除
ボコノン教徒  2006-04-14 08:22:21  No: 61209  IP: 192.*.*.*

> 静止画であれば、ISampleGrabber::SetMediaTypeで可能だと思うのですが、
> 動画の場合はどうしたらいいのか、どなたかご教授頂ければ幸いです。

日本語ヘルプの「ISampleGrabber::SetMediaType」の項に説明がありますが、
メジャー タイプ :MEDIATYPE_Video 
サブタイプ :MEDIASUBTYPE_RGB8
フォーマット タイプ :GUID_NULL 
と設定すると、SampleGrabberが上流側フィルタと、この設定でネゴシエーションを行ってくれるくれるようです。100%うまくいく保証はありませんが。

USBカメラのメディアタイプを変更したい場合は「IAMStreamConfig インターフェイス」をカメラの出力ピンから取り出してメディアタイプを変更します。
カメラがそのフォーマットをサポートしている必要があります。

編集 削除
ソウメイ  2006-04-20 18:10:58  No: 61210  IP: 192.*.*.*

遅くなって申し訳ございません。
ボコノン教徒さんありがとうございます!

まだまだ勉強不足点も多いため、ボコノン教徒さんから伺った方法と、サンプルである『amcap』を参考に調べて実行してみたいと思います。
また、何か行き詰ることが合った際、質問させていただくことがあるかもしれませんが、よろしくお願いいたします。

編集 削除