2010年12月22日水曜日

ビデオの再生方法を調べる

さてジェスチャーの見通しが立ったかなと。
このままジェスチャーからやってもいいのだけれど、アルゴリズムが長くて少しだれてきた。

ビデオ再生

少し方向を変えて、ビデオを表示してみよう。
今の時代ともなると、ビデオは簡単に再生できるライブラリがあるんじゃないかなと期待。


microsoft.xna.framework.media

XNAでは、media 以下に VideoPlayer や Video というクラスがある。

ビデオの現在の絵をエフェクトとして取り出すことができるので、これを貼り付ければいい。
protected override void Draw(GameTime gameTime) {
  _effect.Texture = _player.GetTexture();

このクラスでは、動画はコンテントの仕組みでプログラムに組み込まなければならないようだ。
さらに、コーデックが WMV に限定されている。
コンテントについてはローダ部分を書けばファイルから取れるかもしれないけれど、コーデックはどうしようもない。


DirectShow

COMベースのメディアフレームワーク。元々は DirectX の一部だった。
フィルタパターンで美しそうな設計だ。
コーデックは、対応したソースフィルタを開発し、フィルタグラフに載せることで対応できる。

ただし、C# から使えるラッパは LGPL のしか無いようで、LGPL にしないなら自前で書かないとならない。


Media Foundation

DirectShow の後継で、Vista 以降専用。
現状で DirectShow との差異は、HD動画、DRM対応、効率向上といったところなのかな。


うーん…

DirectShow か MediaFramework か。
MediaFramework は新しいこと以外にこれといってメリットもなさそうだ。
このために WinXP を捨てるのはペイしないなぁ。

DirectShow にするとして、開発環境をどうしよう。
ラッパ使ってもいいのだけれど何とも釈然としない。

技術的にできることが政治的にできないのはムカムカするんだよな。

0 件のコメント:

コメントを投稿