[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2chのread.cgiへ]
Update time : 12/13 04:59 / Filesize : 187 KB / Number-of Response : 595
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

DirectShowと戦うスレ Part 4



1 名前:デフォルトの名無しさん [2008/06/22(日) 18:38:21 ]
DirectShowプログラマーのみなさん。
メソッドのデッドロックとか、わけわからん現象多くないすか。
このスレに怒りやテクをぶつけましょう。

関連スレ
Win32API質問箱 Build67
pc11.2ch.net/test/read.cgi/tech/1212931246/
くだすれDirectX(超初心者用) part.3
pc11.2ch.net/test/read.cgi/tech/1193605500/
【C++】 DirectX初心者質問スレ Part17 【C】
pc11.2ch.net/test/read.cgi/tech/1207702556/
DirectX総合スレ (Part8)
pc11.2ch.net/test/read.cgi/gamedev/1205306118/
【PureVideo】DirectX Video Acceleration【AVIVO】
pc11.2ch.net/test/read.cgi/tech/1178285897/

552 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 12:34:19 ]
>550
Dependency Walkerかdumpbinで、依存してるdllを洗い出してみるのが手っ取り早いと思うよ。

というか>549の言ってるように、Visual C++ランタイムが無いだけだと思うんだが…
Win32プロジェクトでも純粋にWinAPIだけで組むか、ライブラリをスタティックリンクにしない限り
ランタイムが必要になる。(Cの標準関数(printf等)ですらアウト)


553 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 18:56:04 ]
今気づいたんだがDirectShowのビデオレンダリングってクロマキー合成なのな

1.メディアプレイヤーで動画を再生
2.ペイントでキャンバスをRGB(16,0,16)で塗りつぶす
3.ペイントをメディアプレイヤーの上に重ねると下の動画が透けて見える

XPクラシックモード&WMP11で確認

554 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 19:19:38 ]
>>553
ビデオオーバーレイを使ってるときはそうなるかもね。


555 名前:547 mailto:age [2009/09/01(火) 19:36:24 ]
>>551
そうでしたか。
.netFrameworkはインストールを要求するには大掛かりで憚られるので、
避けたいと思っていましたし、よかったです。
ありがとうございます。

>>552
便利なツールを教えてくださってありがとうございます。
これで調査して適切なライブラリを洗い出します。

556 名前:デフォルトの名無しさん mailto:sage [2009/09/03(木) 23:48:43 ]
>>547
コンパイラはVisualStudioか?
7月28日にATLに当たったセキュリティパッチの影響で、
dllが足りていても更正が正しくないと出ることがあるぞ。
もしそれだったら、最新版の再頒布パッケージ入れないと動かないぞ。
www.microsoft.com/japan/technet/security/bulletin/MS09-035.mspx

557 名前:デフォルトの名無しさん mailto:sage [2009/09/04(金) 01:03:29 ]
VisualStudioのインストーラープロジェクトで依存洗い出してインストーラー作ってくれるけど、
そういうのは使えないのか?

558 名前:デフォルトの名無しさん mailto:age [2009/09/04(金) 20:28:26 ]
変換フィルタを作っているのですが、720x480を入力し、そのままのメディアタイプでVMR7


出力すると、
ttp://kissho.xii.jp/1/src/1jyou90085.png
こんなふうにおかしな映像が出力されてしまいます。

しかし、自作変換フィルタ後にAVIデコンプレッサを介してVMR7に接続すると、
正しく映像が出力されました。

AVIデコンプレッサは幅768にアラインしているのでしょうか?
その場合、それと同様のことを変換フィルタに組み込むには、
具体的にどこにどう実装すればよいのでしょうか?

よろしくお願いします。

559 名前:デフォルトの名無しさん mailto:sage [2009/09/05(土) 14:04:16 ]
>>558
VMRのメディアタイプのbiWidth見れば分かるが、768とかになってるはず。
>その場合、それと同様のことを変換フィルタに組み込むには、
変換時にアライン分飛ばせばいい。

560 名前:558 mailto:age [2009/09/05(土) 16:13:23 ]
>>559
なるほど!
ありがとうございました!



561 名前:デフォルトの名無しさん [2009/09/06(日) 14:49:43 ]
訳あってdirectshowを学ばなければならなくなった者です
なかなか良い書籍やサイトが見つからないのですが、みなさんはどうやって勉強しているのでしょうか?

562 名前:デフォルトの名無しさん mailto:sage [2009/09/06(日) 15:09:36 ]
>>561
SDKのサンプルとドキュメント1択。


563 名前:デフォルトの名無しさん [2009/09/09(水) 12:44:39 ]
例えばデスクトップをキャプチャしてaviで保存するアプリを作ったとする
このとき無圧縮だったり、そのほかのコーデックで圧縮したりするようにするにはどうすればいいんだ?
どのフィルタの部分でそのコードを書く?のだね 初心者だから教えてみてみ

564 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 13:37:02 ]
>>563
VFW使え。それが一番簡単。


565 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 02:21:14 ]
>564
VFWはファイルサイズ2G以下の壁が…
正直grapheditのが簡単な希ガス。

566 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 02:32:51 ]
vfwはビデオコーデックの機能だけだカス

567 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 16:53:30 ]
DirextShow初心者なのですが、
H264のaviファイルの各コマ画像を連続で取り出すことって
簡単に出来るのでしょうか・・・
対応コーデック(フィルタ?)を入れれば再生は簡単に出来そうですが、、


568 名前:デフォルトの名無しさん [2009/09/10(木) 18:36:40 ]
directshowでビデオからの映像をグレイスケールにして二値化するにはどうしたらよいのでしょう


569 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 18:54:40 ]
>>567
余裕

>>568
フィルタ作れ

570 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 22:09:06 ]
>>568
EZRGB24っていうサンプルが参考になるよ



571 名前:デフォルトの名無しさん [2009/09/16(水) 03:11:58 ]
二値化フィルターくらい簡単なら作ったげよか?
輝度でばっさり二値化するのでいいのか?
色で判断して二値化するほうがいいの?
閾値はどうする?プロパティページで変更出来るようにしたい?

スライス方式って上下限の閾値ってのもあるぞ

お好みを指定してくれ。
後、ソースはやらん

572 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 02:03:11 ]
>>571
適応的二値化でお願いします
cvAdaptiveThreshold()を呼び出すだけより格段に速いやつを

573 名前:デフォルトの名無しさん [2009/09/17(木) 09:11:36 ]
周囲の環境から最適に二値化するやつか。
それはまんどくさ

574 名前:デフォルトの名無しさん [2009/09/18(金) 22:24:21 ]
cvAdaptiveThreshold()より改善するのは仕事でないと嫌だが、
まんま使うとかはダメなのか?

仕事として受けるなら設計書とソース提出するよ


575 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 17:35:55 ]
自力で高速化してみます
ありがとうございました

576 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 14:06:10 ]
Visual C++ 2008 を使用しています。

Microsoft SDKs\Windows\v6.1\Samples\multimedia\directshow\baseclasses
にある Streams.h をインクルードしたら
IReferenceClockTimerControl が定義されてないと出ました。
これはどういった対処をすれば良いのでしょうか?

577 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 14:10:05 ]
まずはビルドしろよ糞が

578 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 16:46:07 ]
基本的な事を知らずにDirectShowに手を出すと泣くよ。
俺が昔そうだったから保障するw

579 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 23:12:02 ]
>>576
ヘッダー全部もってこい。
もしくはちゃんとパスを通せばおk

580 名前:デフォルトの名無しさん mailto:sage [2009/09/28(月) 21:56:54 ]
>>576
MicrosoftSDKや、DirectX SDKと、VC++のヘッダファイルで同名のがあるから
インクルードの順番も注意しろ。



581 名前:デフォルトの名無しさん [2009/10/09(金) 14:15:28 ]
TChartShapeでchasVertLineにしてマークを表示させてるのですが
マークが上と下(Y1とY0)に2つ表示されてしまいます
これを上1つ(Y1)だけ表示されるのにはどうしたらいいですか?

582 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 14:16:09 ]
あ、すんません。
誤爆してしまいました

583 名前:デフォルトの名無しさん [2009/10/11(日) 07:36:37 ]
同機種のwebカメラを2つ繋げてもグラフエディットでは1つしか表示されない。

調べてみるとPCによってはちゃんと表示されるものもある(カメラのドライバーは同じ物を使用)
USBコントローラの数が関係してるのかと思うんだけどわからない。

ここには解説出来るような人いる?

584 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 07:47:51 ]
いません

585 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 13:33:39 ]
やっぱり難しいよね。ごめんなさい

586 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 14:14:54 ]
態度が気に食わないので教えない

587 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 14:30:02 ]
ttp://img.f.hatena.ne.jp/images/fotolife/T/TamTam/20091004/20091004201621.jpg

588 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 21:08:27 ]
>>586
>>587
態度を改めます。私程度の力ではわからないため
お願いします教えてください。
【質問】
同機種のカメラ複数台接続してGrapheditで1個しか表示されない
カメラドライバの問題でなく「PC側によって」使えるものと
使えないものがあるが、何が違うのかわかりません。

【現在わかっている事】
ノートPCの一部ではUSBコントローラが複数あり
別々のUSBポートにつないでいれば同機種のWebカメラでも
利用可能。

また、ググると下記の記述があり私が試してみた感じ同じ考えです。
・同じ型番でもドライバが対応していれば大丈夫
・同じメーカーでも型番が違えば大丈夫
・片方のカメラにUSBハブを挟めば大丈夫
・メーカーが違えば大丈夫

blogs.yahoo.co.jp/honebuto_honebuto/28960469.html

よろしくお願いします。

589 名前:デフォルトの名無しさん mailto:sage [2009/10/16(金) 21:17:21 ]
>>578
よくあるパターンだがDirectShowに限らず初心者はその「基本的なこと」が何なのかすら判らないことが多い
で、ググってもそういう事が書いてあるページがなかなか見つからない罠。結果挫折する・・・

590 名前:デフォルトの名無しさん [2009/10/17(土) 01:48:31 ]
キャプチャーカードやカメラの画像サイズの設定で
入力1080と720などの切り替えをしたいのですが、
DirectShow では IAMStreamConfig を使ってできましたが、
WindowMediaEncoderSDK いわゆるWMEncoderLib.dll系を使って
できないでしょうか?




591 名前:誰か助けて。 [2009/10/18(日) 21:37:48 ]
ISampleGrabberを利用して画面キャプチャを行っています。
mpeg2をビットマップにすることは出来ましたが、
Webカメラで撮影して保存したファイルでは失敗します。
Webカメラの設定ではYUV2で保存されるようで、そのファイルのプロパティーで見ると
MS-YUV(16ビット)と書かれていました。この場合、グラバのSetMediaType()には
一体何を与えればいいのでしょうか? なお、現状で、
media_type.majortype = MEDIATYPE_Video;
media_type.subtype = MEDIASUBTYPE_RGB24;
media_type.formattype = FORMAT_VideoInfo; を与えています。
これだと、GetCurrentBuffer()で失敗します。
そこまでは全部成功します。戻り値はVFW_E_WRONG_STATEでした。

592 名前:誰か助けて。 [2009/10/18(日) 21:40:53 ]
なお、フレーム読み込み箇所は次の通りにしています。

this->seeking->SetPositions(&ulc,AM_SEEKING_AbsolutePositioning,&ulc,
AM_SEEKING_AbsolutePositioning );

// 1フレームレンダリング、完了を待つ
while(this->control->StopWhenReady() != S_OK){}

// レンダリング完了を待つ(不要か?)
OAFilterState fs;
this->control->GetState( INFINITE, &fs);

// バッファを取得
this->grabber->GetCurrentBuffer(
      (long*)&this->media_type.lSampleSize,
      (long*)**this->load_buffer);

593 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 22:53:11 ]
>>591>>592です。
解決してないけど解決しました。
どうもよくわかりませんが、そのムービーファイルの数フレームだけ、
GetCurrentBuffer()でVFW_E_WRONG_STATEが返ってくるようです。
しょうもないので、GetCurrentBuffer()でエラーが返ってきても無視すると
うまく行くようになりました。こんなんでええんだろうか・・・


594 名前:デフォルトの名無しさん [2009/10/18(日) 23:13:12 ]
ピクセルフォーマットやメディアタイプを理解せずに、ISampleGrabberを使える事にびっくりした。

>Webカメラで撮影して保存したファイルでは失敗します。
このファイルがどんなファイルなのか、作っているGraphがどうなっているのか、等が分からないと、答える事は難しい。

よく分からないんだったら、IVMRWindowlessControl::GetCurrentImageあたりを使ったほうが無難だと思う。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<187KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef