初めて書き込みます。googleからたどり着きました。
業務で立体動画再生コードを書かねばならんのですが、 なにか適当な3D動画ファイルをDirectshow経由で再生する場合に、 強制的に立体視モード(名称適当ですみません)で再生するような API,SDKの類はどこに情報が落ちてますでしょうか? nVIDIAに行ってもそれらしきものが無く。
StereoMovie Player をそのまんまつかえればいいのですけど、 いかんせん、業務なんです・・・^^;。 |
むっちゃん 2010年9月12日(日) 7:08
HP |
[修正] |
>なにか適当な3D動画ファイルをDirectshow経由で再生する場合に、 >強制的に立体視モード(名称適当ですみません)で再生するような >API,SDKの類はどこに情報が落ちてますでしょうか? ごめんなさい!全く知りません。 そういう便利なものがあればいいのですが、Directshow自体も極めて情報が少なく結構、苦労しています。
ご存知かもしれませんが、私のStereoMovie Player は、ステレオレンダリングや左右動画の結合するマルチプレクサ等、フィルタは、全て内臓して、単体で動作するようにしていますが、Stereoscopic Player は、それぞれ独立したフィルタになっています。Stereoscopic Player の作者にコンタクトして、それらのフィルタを使う事ができるようになれば、通常のDirectshowアプリ同様に、比較的簡単に作れると思います。 |
早速のご返事、ありがとうございました!
そうですね。作者にコンタクトをとってみます。 それにしてもDirectshowの資料が少なくて辟易しています。
ところで、StereoMovie Playerの「液晶シャッター設定」は NVAPIをゴリゴリ書かれているのですか? |
JO-AKKUN 2010年9月12日(日) 12:29
|
[修正] |
横レスで失礼します。N88-BASIC から脱却できない日曜プログラマーです。。。
DirectShow 関係のドキュメントは MSDN の中で分散しています。恐らくは不具合のあったものを更新していて、混乱するドキュメントを削除しちゃっているンだと思います。インターフェイスと呼べば良いのでしょうか、かなり「2」が付いたモノを見かけます。MSDN に残っている過去のドキュメントは有効だと思いますから、点と点を繋げて読破するしかないようです。。。 統合されたと言われている Windows SDK ではヘルプもサンプルも発見できません。
ページフリッピングは、Direct3D(X9)参照だったと記憶します。要は DirectShow でデコードされた動画を Direct3D でレンダリングしてやれば、良いはずで、このときに 3D Vision に対応させるコードを書いてやる感じだと思います。
愚生が見つけた nVIDIA のコードは PDF で、長いものではありませんでした。すみません。みつけられません。で、ソースがムービー対応だったかどうかは記憶にありませんで、もしかするとサンプルグラバになるのかもしれません。あと、デバッグ/リリースのライブラリ関係がどうなっているのか分からなかったので、テストすらしていません。
くれぐれも、N88-BASIC な人間ですので、誤解している点など多々あろうかと思います。3D ムービー発展のため、頑張ってください。 |
JO-AKKUN 2010年9月12日(日) 12:53
|
[修正] |
むっちゃん 2010年9月12日(日) 13:08
HP |
[修正] |
>ところで、StereoMovie Playerの「液晶シャッター設定」は NVAPIをゴリゴリ書かれているのですか?
3D Vision対応は、nVidiaとNDAを結んでいるので詳しい事は申し上げられませんが、SDKやAPI等は頂いておりません。参考にさせていただいたのは、静止画用のサンプルコードだけです。ですから、人様には間違っても見せられない、自己流のスパゲッティソースです(笑)。
JO-AKKUNさま MSやnVidiaのドキュメントは私ごときには、到底、理解不能です。 |
早速のコメントありがとうございます。
すんごく参考になりました!ありがとうございました。
技術的な面でDirectshowは興味あるのですが、 生産性の面で、
C# + IEエンジン + Silverlight + Webサーバ
という構成に落ち着かせようと思ってます。 (DirectX系をゴリゴリ書けるPGをさがすとコストがかかるんです…)。
でも、個人的に追及すべき課題ですので、見つけ次第、報告します。 |
JO-AKKUN 2010年9月12日(日) 14:38
|
[修正] |
思い起こせば、愚生もここにたどり着いた切っ掛けは、ムービーの立体視ソフトを作ってやろうと意気込んで検索していてでした。 当時は、DirectX7 のページフリッピングだったと記憶しますが、こいつにムービーを乗せる方法が分からずに挫折しました。。。と、言っても日曜プログラマーですから、そんなに気落ちしません。 むっちゃん氏のムービーメーカーがありましたので、何の問題もありません。
DirectShow は C# 対応でしたよね。C++ のみの対応も DLL にしちゃえば、ゴリゴリしなくて済むと思います。
愚生は、VB6 NotNET で編集サービスと格闘中です。SDK は DirectX7 から CD-R に焼いて於いたのですが、再生できずで撃沈寸前です。。。
C# だと、DirectShow 関連は VB ドキュメントの方が近いかもしれません。複雑なことは出来ませんが、Quartz.dll は WMV も AVI も再生してくれて便利です。 |
>JO-AKKUNさま
nVIDIAの資料を読みましたが、あれで正しいのだと思います。
2つの出力を同じ場所に重ねるようなことが書いてありますが、 たぶんにあの資料のまんま、コードをかけば再生できそうです。
|
JO-AKKUN 2010年9月14日(火) 23:15
|
[修正] |
なおなおさまへ もうお調べのこととは思いますが、念のため、C# DirectX9です。 http://msdn.microsoft.com/ja-jp/library/ms804954.aspx
DirectShow はオーディオビデオになっていると思います。ワケワカの定数は C++ 用のヘルプを参照して推測するしかありません。
マネージドですから C++ に移植も可能ですし、VB Net でも OK。いろいろな実現方法があるだけに迷ってしまいます。
あとDirectX SDK (August 2009)オンラインヘルプが日本語化されていました。 |
ありがとうございました。
私も気になっていて VC++ / DirectX / DirectShow で Vista上で 書いてみました。 (テクスチャ上にDShowのフレームを書き込んで最大化表示してます)
今は3Dvision用タグの書き込みでトラブるので対処法検討中です。
ここまでは意外とすんなりいったと思います。
|
JO-AKKUN 2010年9月17日(金) 7:02
|
[修正] |
JO-AKKUN 2011年5月15日(日) 5:18
|
[修正] |
|