#freeze
 * DirectShow [#e0665f0b]
 
 ** いろいろメモ [#abbdf8f6]
 書いておかないと忘れるので。
 
 *** DirectX SDK から DirectShowのサンプルがなくなってる? [#b3cf856a]
 DirectShowは、以前はDirectX SDKと共に配布されてたけど、2005年バージョンからDirectX SDKではなくなったらしい。といってDirectShowがなくなったわけではなく、どこへいったかというとPlatform SDKに付属するようになったとのこと([[Wikipedia:http://ja.wikipedia.org/wiki/Microsoft_Platform_SDK]]で知ったよ)。
 
 でも、MSDNの[[DirectShow:http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpdx8_c/ds/ref/components.asp]]の項はDirectXのノードに書かれてるし、PSDKのDirectShow関連のソースをビルドするにはDirectX SDKも必要ときている。どういう意図のある分離なのかがよくわからんですよ。
 
 とりあえず、Platform SDK は次の場所からダウンロードできる。
 
 - [[Platform SDK ダウンロード:http://www.microsoft.com/msdownload/platformsdk/sdkupdate/]]&br;
 ここからリンクが切れている場合は[[こっち:http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en]]で。
 
 ついでに、VS2005 Express へのリンクも貼っておく。
 - [[Visual Studio 2005 Express Edition:http://msdn.microsoft.com/vstudio/express/default.aspx]]
 
 *** BaseClassesって?[#gf80e77e]
 こんな名前だけど、SDKのIncludeディレクトリやLibディレクトリなんかをいくら探しても見つからない。これはなんとSampleディレクトリ内にある。
 
  (インストールディレクトリ)\Sample\C++\DirectShow\BaseClasses\
 
 ネットに出回っているDirectShow関連のプログラムでは、かなりの確率でこのライブラリが使用されているのだけど、なぜかコンパイル、リンクができない。その理由は、多くの場合、このライブラリのインクルード、リンクが前提になっているからというパターンが多い。
 
 ライブラリのビルドのやり方などは、[[こちら>VMR9Allocator 作成]]を参考にどうぞ。
 
 *** ビデオ再生をする2つの方法 [#haf29c01]
 DirectShowを使ってビデオ再生(動画、aviとかmpegとか)をする方法は大きく2つある(やろうと思えば3つも4つもあるかもしれないけどネ)。ひとつはSampleGrabberを使用する方法、もうひとつは、VMR9(Video Mixing Renderer 9)を使用する方法。
 
 SampleGrabberというのは、動画の1フレームを静止画として取り出すフィルタのひとつで、これを連続して取り出しつつDCに描画すれば、結果的に動画になるというもの。VMR9も中身では結局同じことをやっているのだろうけど、コードとして動画を再生する手順が前者より省かれている気がする。
 
 どちらかというとVMR9を使う方が簡単に見える。VMR9の大きな特徴は、mixingという名の通り、動画の上に別の動画を重ねて(例えば、何かの映像の上に文字列をテロップとして流すみたいな)再生ができるという点(これがVMR9たる所以でしょうけど)だが、重ねずに1枚の動画を再生することも当然できる。
 
 ちなみに、SampleGrabberはDirectX8からの機能、VMR9はDirectX9からの機能(8にもVMR自体はあるみたいだけど)ということになるです。
 
 SampleGrabberについては下記サイトなどを参考に。
 
 - [[DirectX 8.1 新機能:http://www.microsoft.com/japan/msdn/directx/techart/WhatsNewDX81.aspx]]
 - [[Microsoft DirectShow フィルタ グラフからデータを取得する方法:http://www.microsoft.com/japan/msdn/directx/techart/grabbersample.aspx]]
 
 VMR9は、SDK付属のサンプルコードを見るのが早い(きっと)。
 
 ** MSDN [#xb0d3c51]
 
 - [[MSDN:http://msdn.microsoft.com/library/ja/default.asp]]
 -- [[DirectShow:http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/directx9_c/directx/htm/introductiontodirectshowapplicationprogramming.asp]]&br;
 DirectShowのヘルプ目次。
 -- [[DirectShow for VB:http://www.microsoft.com/japan/msdn/directx/japan/dxvb/dxvbdShow.aspx]]&br;
 VBでどう使うかが書かれているが、他の言語開発でも参考になる。
 -- [[FAQ:http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/directx9_c/directx/htm/directshowfaq.asp]]&br;
 FAQです。
 
 
 ** 参考サイト [#h2768f3a]
 - [[geekなぺーじ:http://www.geekpage.jp/programming/]]
 -- [[DirectShowプログラミング  VC++:http://www.geekpage.jp/programming/directshow/]]
 -- [[Platform SDK:http://www.geekpage.jp/programming/platform-sdk/]]
 
 -----
 [[DirectX]]
 [[プログラム・開発系メモ]]
 
 #googleads(1,1)
 

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS