DirectShowと戦うスレ
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNGメソッドのデッドロックとか、わけわからん現象多くないすか。
このスレに怒りやテクをぶつけましょう。
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNGDirectXの1コンポーネントでVideoやAudioのストリームを操作する
APIっす。
0007デフォルトの名無しさん
NGNG(´Д` ) >>6 お手数かけますた
/ y/ ヽ
Σ(m)二フ ⊂[_ノ
(ノノノ | | | l )
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNG0012デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNGなんとかシテクレ。
0015デフォルトの名無しさん
NGNGWinでTVアプリ書いてるヤツはだいたいハマっとる
0016デフォルトの名無しさん
NGNG0017デフォルトの名無しさん
NGNG0018デフォルトの名無しさん
NGNGオーディオプレーヤソフトやビデオキャプチャ系も使ってる。
0019デフォルトの名無しさん
NGNG0020デフォルトの名無しさん
NGNG結局Mixer開けないといけないし
0021デフォルトの名無しさん
NGNG0022デフォルトの名無しさん
NGNGVS.NETが売れてMSウハウハ
0023デフォルトの名無しさん
NGNGビデオキャプチャーでカメラの解像度の選択は
どうすればよいのでしょうか?
320X240を選びたいんですが?
0024デフォルトの名無しさん
NGNGGetConnectedMediaTypeで取得した値には,いつもきまった解像度の値しか
入っていないが,これをプログラム中で変更するにはどうしたらよいのでしょうか.
(例えば,720x480と360x240の切り替えなどをしたいです).
0025デフォルトの名無しさん
NGNG0026デフォルトの名無しさん
NGNGそう思っていたのですが,pGrab->GetConnectedMediaType(&amt);とかして
とれるビットマップのヘッダーを見ると360x240になっているのです.
んで,なんで720x480じゃないのだろうかと思ったのです.
0027デフォルトの名無しさん
NGNGgraphの中にIIPDVDecインターフェイスを持っているフィルターがあるはず
だから、そいつをなんとかとりだせば(EnumFiltersとか)、あとは
put_IPDisplayを適当なDVDECODERRESOLUTION_*で呼べばOK.
0028デフォルトの名無しさん
NGNG「H.261Codec」とか。あれ、どうやったら使えるの?
0029デフォルトの名無しさん
NGNGMpeg2ストリームは、Demuxer-Decoder-オーバーレイミキサ-レンダラとなんだか
変なYVフォーマットでつながっています。
サンプルグラバはRGB24で書いているので、同じビデオなのにそこに割り込ませてもらえません。
これはどう解決すればよいのでしょうか?
0030デフォルトの名無しさん
NGNG0031デフォルトの名無しさん
NGNGこれは未対応ということでしょうか?
dx8.1がインストールされていることは確認しています。
0032デフォルトの名無しさん
NGNG音声+動画をまとめるのならあるけどさ。
0033デフォルトの名無しさん
NGNGストリームをまとめるフィルタは「〜マルチプレクサ」とかいう名前がついてるのが多いので
ヘルプをじっくり探してみてください。
ただ・・・動画をまとめるフィルタなんて無いと思いますよ。
どう纏めたいのかわからないし。
0034デフォルトの名無しさん
NGNGhttp://www.microsoft.com/japan/developer/library/jpdx8_c/ds/appdev/howto_enum.htm
ここの下にあるフィルタマッパを利用して列挙してもそれらのフィルタがでてきてくれません。
たとえば、
GUID arrayInTypes[2];
arrayInTypes[0] = MEDIATYPE_Video;
arrayInTypes[1] = GUID_NULL;
hr = pMapper->EnumMatchingFilters(
&pEnum,
0, // 予約済み
FALSE, // 完全一致を使用?
MERIT_DO_NOT_USE+1, // 最小のメリット
TRUE, // 1 つ以上の入力ピン?
1, // 入力のメジャー タイプ/サブタイプの対の数
arrayInTypes, // 入力のメジャー タイプ/サブタイプの対の配列
NULL, // 入力メディア
NULL, // 入力ピンのカテゴリ
FALSE, // レンダラでなければならないか?
TRUE, // 1 つ以上の出力ピン?
0, // 出力のメジャー タイプ/サブタイプの対の数
NULL, // 出力のメジャー タイプ/サブタイプの対の配列
NULL, // 出力メディア
NULL); // 出力ピンのカテゴリ
こんな感じで列挙しているのですが、だめみたいです。解決法はないでしょうか?
0035デフォルトの名無しさん
NGNG>DMO Audio Effectsというフィルタカテゴリに、
>arrayInTypes[0] = MEDIATYPE_Video;
何かおかしいと思わない?
003634
NGNGなんとDMOEnumというのが別で用意されていて、そちらで列挙しなさいと
いうことのようです。
・・・統一的に扱えなくてなんかすごくイヤですけど。
0037デフォルトの名無しさん
NGNGのを継承したいのですが何とかなら無いでしょうか?
0038デフォルトの名無しさん
NGNG0039デフォルトの名無しさん
NGNGどこかに良いサンプルや説明はありますか?
0040デフォルトの名無しさん
NGNG0041デフォルトの名無しさん
NGNGVBかC#のはないかなぁ
0042デフォルトの名無しさん
NGNGhttp://www2.plala.or.jp/k-world/vbasic/vbasic008.html
がずばりかと。
0043デフォルトの名無しさん
NGNGバグだらけ。MSにレポートしても「直る予定はありません」アフォかってーの!
実装が足りていない所も多いし、オーバヘッドも大きい。サンプルもグラフビルダもエラー&リーク起きまくり。
0044デフォルトの名無しさん
NGNG0045デフォルトの名無しさん
NGNGふぬああ位なら誰でも作れるんじゃない?
0046デフォルトの名無しさん
NGNG0047デフォルトの名無しさん
NGNG〃 ヽ .|
i ノノノ))) )) | Direct Showが好きなんですか?
. i i ( 'l_] l]〈リノ .<
ヽヽ > /> \_____
Y/ヽ!ェl〉 /ヽ/ヽ
!! l卯 l / // /
i ll8| ! / // /
. l l「| l , ´-‐ ‐- ヽ
/!_」l|_j、 { l ,, } ぅん
. / /゙´l"ヽ > ゝ. ‐ ノ
'ーr‐ r r ´ l !
. l l. | | |
. | ! | l. |
-―-
〃 ヽ
i ノノノ))) )) / ̄ ̄ ̄ ̄ ̄
. i i ( 'l_] l]〈リノ < ふぬああのソースがお手本ですか?
ヽヽ > n/> \_____
Y/ヽ!ェl〉 /ヽ/ヽ
!! l卯 l / // /
i ll8| ! / // /
. l l「| l , ´-‐ ‐- ヽ
/!_」l|_j、 { l U } ……
. / /゙´l"ヽ > ゝ. っ ノ
'ーr‐ r r ´ ⊂ニl !
. l l. | | |
. | ! | l. |
0048デフォルトの名無しさん
NGNG使ってねーよ。なにに使われてるってんだ?
0049デフォルトの名無しさん
NGNGふぬああ
0050デフォルトの名無しさん
NGNG0051デフォルトの名無しさん
NGNG0052デフォルトの名無しさん
NGNG統合されたんじゃないの?Video for Windowsとかも。
0053デフォルトの名無しさん
NGNG0054デフォルトの名無しさん
NGNG知ってて言ってるんでしょ?
VFWとは「統合」じゃないでしょう。
>>48
いやー。そこらのTVチューナーカードにくっついてるしょぼい
アプリとかはそうじゃないのかなあ。
0055デフォルトの名無しさん
NGNGただ堅牢なアプリほど自前でやってるみたいだけど。
0056デフォルトの名無しさん
NGNG…DirectShow使わずに自前でAVI2フォーマットのファイルを直書きって言ってる?
0057デフォルトの名無しさん
NGNG出来ないことはないがね。
0058デフォルトの名無しさん
NGNG0059デフォルトの名無しさん
NGNG技術があればDirectShowのしょぼい機能に我慢する必要はないのでね。
0060デフォルトの名無しさん
NGNG0061デフォルトの名無しさん
NGNG0062デフォルトの名無しさん
NGNG技術なんか必要ないけどね
必要なのは労働力だけだ
0063デフォルトの名無しさん
NGNG0064デフォルトの名無しさん
NGNGそれを嫌って自前で実装、というのは割とある話。
AVI入出力程度はスクラッチだろうと誰でも書けるし。
0065デフォルトの名無しさん
NGNGaviの入出力だけですべてが片づく事の方が希
0066デフォルトの名無しさん
NGNG0067デフォルトの名無しさん
NGNG0068デフォルトの名無しさん
NGNG0069名無しさん
NGNGΛ_Λ | 君さぁ こんなスレッド立てるから |
( ´∀`)< 厨房って言われちゃうんだよ |
( ΛΛ つ >―――――――――――――――――――‐<
( ゚Д゚) < おまえのことを必要としてる奴なんて |
/つつ | いないんだからさっさと回線切って首吊れ |
\____________________/
(-_-) ハヤクシンデネ… (-_-) ハヤクシンデネ… (-_-) ハヤクシンデネ…
(∩∩) (∩∩) (∩∩)
(-_-) ハヤクシンデネ… (-_-) ハヤクシンデネ… (-_-) ハヤクシンデネ…
(∩∩) (∩∩) (∩∩)
(-_-) ハヤクシンデネ… (-_-) ハヤクシンデネ… (-_-) ハヤクシンデネ…
(∩∩) (∩∩) (∩∩)
0070IP記録実験
NGNGhttp://qb.2ch.net/test/read.cgi/accuse/1042013605/
1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。
27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?
38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。
73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
0071デフォルトの名無しさん
NGNG0072デフォルトの名無しさん
NGNG逝き遅れの妹発見
0073デフォルトの名無しさん
NGNG0074デフォルトの名無しさん
NGNG0075デフォルトの名無しさん
NGNG0076デフォルトの名無しさん
NGNGできると思うよ。表面上はIP出ないから。
0077デフォルトの名無しさん
NGNG2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 138720人 発行日:2003/1/9
年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。
そんなわけで、年末に予告したIP記録ですが実験を開始しています。
「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0078デフォルトの名無しさん
NGNG0079デフォルトの名無しさん
NGNG0080デフォルトの名無しさん
NGNGそんなことはいちいち判断してらんないので、「もめごとは当事者同士で」
という結論になったんじゃないかと、、
0081デフォルトの名無しさん
NGNGそんなことはいちいち判断してらんないので、「もめごとは当事者同士で」
という結論になったんじゃないかと、、
0082デフォルトの名無しさん
NGNG0083デフォルトの名無しさん
NGNGむかしはトランプは子供の勉強に支障をきたすものとして悪者扱いされてたんだぞ
TVゲーム、バイク、etc
なんでもかんでも禁止しまくって、それで正義感ぶってる人間ほど悪い人間はいない
0084デフォルトの名無しさん
NGNG博之は寝た。
0085デフォルトの名無しさん
NGNG0086デフォルトの名無しさん
NGNGでも物事はだんだんエスカレートしていく物、そのうち密告とかも「誹謗中傷」として
IPを渡すようになる、、、
0087デフォルトの名無しさん
NGNGボランティアの皆様に於かれましては、本年も変わらず
健やかに活動を続けていけるよう、お祈り申します。
2003年 元旦
0088デフォルトの名無しさん
NGNG0089デフォルトの名無しさん
NGNG乗ってる板を見れ。
0090デフォルトの名無しさん
NGNG初めてのfusianasan
0091デフォルトの名無しさん
NGNGhttp://www.1ch.tv/thread.php?th=2679&ar=6&ca=8
0092デフォルトの名無しさん
NGNG0093デフォルトの名無しさん
NGNG2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 139038人 発行日:2003/1/10
なにやら、連日メルマガだしてるひろゆきです。
そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。
重くなって落ちたりしてもご愛嬌ってことで。。。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0094デフォルトの名無しさん
NGNG言いたい放題はブシュだけ
0095デフォルトの名無しさん
NGNGWINNYなんて、倒産・違法化したら結局存在できない訳でしょ。
法律のアナは埋める為にある訳で。
時間稼ぎにはなるけれど
結局社会正義じゃない事は立法府がまともなら消えるのでは。
一回政権交代。
野党2党でとってね>首
二回以内に一度だけ取れたら日本は変わる。
あとは解散していいさ
その人たち。
0096デフォルトの名無しさん
NGNG0097デフォルトの名無しさん
NGNG何かしでかしそうです。放っておいていいのでしょうか?
125 名前:ありえない人 ◆y.GuoEaXhM 投稿日:03/01/11 11:31 ID:94ui+dnh
犯行予告できなきゃ2ちゃんに来る意味は無い。
俺は追いこまれるだけ追いこまれう自殺も本気で考えた。
でも本当に死者がでればワイルド吉田にも責任があったといっておく。
127 名前:ありえない人 ◆y.GuoEaXhM 投稿日:03/01/11 11:34 ID:94ui+dnh
俺本気で怒ってるよ。
もう俺終わりなんだな、って思うと。
こんな理不尽なことはねえな、っていってもみんなけらけら笑いやがる。
ここまでやられてもいままで殺しをやらなかった俺がおかしいんだろう。
128 名前:ありえない人 ◆y.GuoEaXhM 投稿日:03/01/11 11:35 ID:94ui+dnh
さよなら2ちゃんねる。
地獄行きの列車の切符ならもう手に入れてあるよ。
http://ex.2ch.net/test/read.cgi/entrance/1042189622/125-137
0098デフォルトの名無しさん
NGNG0099デフォルトの名無しさん
NGNGモナーが出演決定!!!!!!!!!!!!!!!!!!!!!
<<放送時間>>
1/12
大阪 テレビ大阪 (日)9:30〜10:00
東京 テレビ東京 (日)9:30〜10:00
名古屋 テレビ愛知 (日)9:30〜10:00
福岡 TVQ九州放送 (日)9:30〜10:00
札幌 テレビ北海道 (日)9:30〜10:00
岡山・高松 テレビせとうち (日)9:30〜10:00
0100デフォルトの名無しさん
NGNG0101デフォルトの名無しさん
NGNG0102デフォルトの名無しさん
NGNGNiftyだってVANだってそうだった。
NIftyは今でもそうだし。
2chのほうが突然変異みたいなもんでしょう。
2ch型のBBSが流行ったおかげで
従来型のIDログイン制BBSがどこも寂れてしまったのが不幸なんだ。
2chはこういうところなんだから
こういう所だと割り切って利用するほかない。
そしてIDログイン制のきちんとしたBBSと
2chのような誰でも何の手続きもなしでいきなり書き込みできるBBSとで
棲み分けするのが望ましい。
0103デフォルトの名無しさん
NGNGモナーが出演決定!!!!!!!!!!!!!!!!!!!!!
<<放送時間>>
1/12
大阪 テレビ大阪 (日)9:30〜10:00
東京 テレビ東京 (日)9:30〜10:00
名古屋 テレビ愛知 (日)9:30〜10:00
福岡 TVQ九州放送 (日)9:30〜10:00
札幌 テレビ北海道 (日)9:30〜10:00
岡山・高松 テレビせとうち (日)9:30〜10:00
0104デフォルトの名無しさん
NGNG(先日までは)そのような環境ではなかったワケですよね。
0105デフォルトの名無しさん
NGNG0106山崎渉
NGNG0107デフォルトの名無しさん
NGNG0108山崎渉
NGNG0109デフォルトの名無しさん
NGNG0110デフォルトの名無しさん
NGNG0111デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1029122103/l50
0112山崎渉
NGNG0113デフォルトの名無しさん
NGNG在ったら教えてほしいんですが…お願いします。
0114デフォルトの名無しさん
NGNGAvisynthすれとかみてみたら。海外のリンクもあるし,色んなものが
オープンソースで開発されているようだし。
0115デフォルトの名無しさん
NGNGありがとう。向こうで聞いてみます。
マルチポストになっちゃうけど(汗
AvisynthってDirectShowフィルターなんですか?
0116378
NGNGどうもレンダラが表示した後にCStaticが黒く上書きしたりしているらしくうまく表示されません。
どなたかアドバイスをお願いします〜よろ。
0117378
NGNG位置を0にしてIVideoWindow::StopWhenReady()を呼び出してるんだけど
1フレーム目が表示されたりされなかったりする。。
なんでだろう??
0118デフォルトの名無しさん
NGNGfilter graphを生成後にIMediaControl::Pause()で最初のフレームを表示できました。
0119デフォルトの名無しさん
NGNGゲ製作みたいにはならないでくれと願う。>荒らし
0120デフォルトの名無しさん
NGNG出来なくなってしまいました、何か設定があるのですか。
0121120
NGNGIPersistStream インターフェイスを使ってできました、DX9ヘルプにはコード付で説明がありました。
0122デフォルトの名無しさん
NGNG以下のようなメッセージが出ます。何が悪いの?
KillTimer(hwnd,(UINT_PTR) hwnd)
At line 3494 of e:\dx8_2\multimedia\dshow\filters\image\video\dvideo.cpp
Continue? (Cancel to debug)
0123デフォルトの名無しさん
NGNG戦士は居ないのか??
0124デフォルトの名無しさん
NGNGわかんないけどさ。普通はそこでCancelボタンを
押してデバッグを始めるもんじゃないの?
"Cancel to debug"ってせっかく書いてあるじゃん。
問題が起きたソースコードの位置まで書いてある。
だいたい何をしてたらそうなったのか私にはさっぱり分からないよ。
だって、あなたのPCを千里眼で見てるわけじゃないんだから。
動画の再生?DVD?フィルタグラフをいじった???
0125デフォルトの名無しさん
NGNGダメダコリャ。このスレ要らない。sage
0126デフォルトの名無しさん
NGNG0127デフォルトの名無しさん
NGNG0128デフォルトの名無しさん
NGNG3つがあるらしい事と、DirectShowFilterよりDMOの方が簡単らしい事は判ったのですが、
DMOだとDX8以前のアプリケーションとの互換性が判りません。
0129デフォルトの名無しさん
NGNG再生だけならTFilterGraphを追加して、TFilterGraph.RenderFileしたあと
TFilterGraph.Playするだけ。
AC-3→WAV変換ツールも、TFilterGraphとTFilter*2を追加して、適当に
プロパティの設定をしたら、あとは(TFilterGraph as IGraphBuilder).connect
してTFilterGraph.Playするだけ。
俺の知識では複雑な事はできないけど、単純な事ならCOMとか知らなく
ても使えるのがイイ!
0130デフォルトの名無しさん
NGNGDSPack2.3は、参考になりました。CodeWarriorもC++Builderも使いにくいと
ころがありまして大変です。VC++から変換すれば、両方使いやすくなるんです
が、単体では、やはり、むずかしいですよね。やはり、DirectShowとかは、
VC++なのでしょうか。129さんどうもありがとう。参考になりました。
0131デフォルトの名無しさん
NGNG0132デフォルトの名無しさん
NGNGあれって、トラックやグループは、追加は出来るのに、
削除は出来ないくさいのは気のせい?
0133山崎渉
NGNG0134山崎渉
NGNG( ^^ )< ぬるぽ(^^)
0135デフォルトの名無しさん
NGNGWave音声ミキシング出来るフィルタってあります?
URLかキーワードでもいただけるとありがたい。。。
0136:
NGNGhttp://sagatoku.fc2web.com/
あなたの探し物きっとみつかるよ☆^〜^★
0137デフォルトの名無しさん
NGNG0138デフォルトの名無しさん
NGNG0139デフォルトの名無しさん
NGNGできなければ何かライブラリあったら教えて。
0140山崎渉
NGNGピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
0141デフォルトの名無しさん
NGNG0142デフォルトの名無しさん
NGNG640×480で認識するんだがこれはバグだよね?
Windows Media Player 9 でも640×480で初期表示する。
0143デフォルトの名無しさん
NGNGこのスレは書込み禁止だ。
0144デフォルトの名無しさん
NGNG0145デフォルトの名無しさん
NGNGなんで?
0146デフォルトの名無しさん
NGNG馬鹿は放置しなさいって。
0147デフォルトの名無しさん
NGNGそりゃ、ピクセルの形を修正して表示してくれてるありがたい機能だよ。
むしろ感謝すべき。
0148デフォルトの名無しさん
NGNG0149山崎 渉
NGNG__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
0150デフォルトの名無しさん
NGNGhttps://sourceforge.net/projects/guliverkli/
このフィルタってどうやって使うのでしょうか?
GraphEditでローカルファイル(オーディオ)を入力する分には再生できたのですが
URLを指定する方法がわかりません.
ご教示願います.
Real Alternative も必要と言う噂です.
ttp://fileforum.betanews.com/detail.php3?fid=1054136293
0151デフォルトの名無しさん
NGNGのShoutcastStream Sourceはやる気があるのでしょうか?
1.
Regsvr32 shoutcastsource.ax
を実行すると正しく登録されず$WINDIR$\system32\regsrv32.exeに
関連付けられて正しくCreateできない
2.
1.を修正しGUIDを指定し正しく指定しFilterGraphに追加しても,
どんなURLをLoadしても「http://localhost:8000/」に書き換えて開こうとする.
(このとき,それが存在しないためにLoadに失敗する)
...ということは,「http://localhost:8000/」に目的のURLを
リダイレクトしろということかしら?(えらくめんどいなぁ
ちなみに「localhost」の部分を書き換えたら正常にグラフが作成され
音が鳴ったぞイ
0152山崎 渉
NGNG0153デフォルトの名無しさん
NGNGレンダラにそれぞれ繋ぐにはどうしたら宜しいのでしょうか。
ソースフィルタから直接ビデオ・サウンドに繋ぐと、先に繋いだ方は
スプリッタ等が補完されてとりあえず繋がりますが、後になった方は、
ソースフィルタからは直接繋げなくなりますよね・・・
ソースがAVI等に確定してるならば先にスプリッタと繋ぎ、スプリッタから
それぞれに繋げられるのですが、ソース種別不定だとどうやって繋げば
良いのか検討がつきません。
0154デフォルトの名無しさん
NGNGDirect Show使えばavi, mpgって簡単に再生できるものなの?
0155デフォルトの名無しさん
NGNG0156山崎 渉
NGNG│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
0157デフォルトの名無しさん
NGNGRealtimeのCapture(AMCAPとか)の上に重ねたいんですけど、
どうやってやるモンなの?
0158デフォルトの名無しさん
NGNGプログラミングなんてやったことのない厨房が作るには、
DirectShowなんかを使ったらイイと閃いたのでつが、
開発言語は何がよさげでしょう???まにーは使いたくないでつw
0159デフォルトの名無しさん
NGNG0160158
NGNGRuby for DXってどういうものですか?
0161デフォルトの名無しさん
NGNGサンプルをコンパイルするのにも一苦労すると思われ。
プログラミング知識ゼロじゃなあ。まじ、DirectShow難しいよ。
0162デフォルトの名無しさん
NGNG0163デフォルトの名無しさん
NGNG0164デフォルトの名無しさん
NGNG0165デフォルトの名無しさん
NGNGCComQIPtr <IBasicVideo2, &IID_IBasicVideo2> pibv2(m_pigb);
long lAX=0,lAY=0;
pibv2->GetPreferredAspectRatio(&lAX, &lAY);
これで正しい値が帰ってきてくれればいいんですが、
0,0が帰ってきたり単なる縦横のピクセル数が帰ってきたりする、
ってのはこちらがなにか悪いことでもしたんでしょうか?
0166デフォルトの名無しさん
NGNGhttp://www.rantyan.net/pink/linkvp.html
0167デフォルトの名無しさん
NGNGAVIは全て0,0でしょ。
ピクセル数らしき数値は、そう言う値をアスペクト比に持ってるからで
問題無い。 352x240のmpgなんて大抵 704000, 540000なんて
値返ってくるよ。
0168デフォルトの名無しさん
NGNGいい加減なDivXをどうにかしてくれ。
0169デフォルトの名無しさん
NGNG0170デフォルトの名無しさん
NGNG0171デフォルトの名無しさん
NGNG0172デフォルトの名無しさん
NGNGMCI
0173デフォルトの名無しさん
NGNGむつかしい、とかやさしいとか、そんな話はどうでもいい。
踏み込んだら負け。
0174デフォルトの名無しさん
NGNG素人俺にはわからんな。
0175デフォルトの名無しさん
NGNG0176デフォルトの名無しさん
NGNGOleCreatePropertyFrameを実行することです。よそのアプリでも落ちるフィルタは落ちてるんで単純ミスではないと考えてるんですが…。
いろんなサンプルコードとか見て試したんですが同じ結果ですし。でもなぜかグラフエディットではできてるんですよ。
土下座するので助けてください。
0177↑
NGNG今日も救援なし。いよいよ戦況悪化し危険な状況。
孤立無援。四面楚歌。DirectShow恐るべし。
0178デフォルトの名無しさん
NGNGDMOのこと?それともDirectX Plug-Inのこと?
まぁ、どっちにしろ俺には答えられんが。
DirectShowであまりに停滞するならあオーディオエフェクトはWinamp DSP Plug-inとかVST でやるという手もある。
0179デフォルトの名無しさん
NGNG土下座するので見逃してください
0180デフォルトの名無しさん
NGNGを,Win2000+VC6+DirectXで実行したのですが,PCによって
解像度が変わるのですが・・・
キャプチャカードはどちらもカノープスのDVTX200です.
カメラはS端子から入力しています.
(1)Pen4 2.2GHz+メモリ512MB+DirectX9.0なら(DirectX8.0でも)720*480
(2)Pen2 450MHz+メモリ384MB+DirectX8.0なら360*240
(1)の方は,はじめは9.0で実行したのですが,9.0を削除して8.0にしても
同じでした.
プログラムの都合上,360*240(できれば320*240)で表示したいのですが,
変化するのは何が原因でしょうか・・・
0181デフォルトの名無しさん
NGNG前に他のソフトでキャプチャした時のサイズそのままなだけだと思う。
0182デフォルトの名無しさん
NGNG1週間悩んだ。フリーズしまくった、マンセー
超うれしい、サイコウサイコウ0アヒャハyハヤ(´・∀・`)グヘ
0183180
NGNG確かにサイズ指定してないです.
どちらの場合も,実行前にカノープスのDVT Controllerを実行してプレビューを
開いている(実行しないと表示できない)ので,同じになるはずなんですが・・・
#このプレビューは360*240になっています.
プログラムでサイズ指定するとしたら,どんな関数になるんでしょうか?
MSDNで探してみたのですが,それっぽいのがみつかりませんですた・・・
0184デフォルトの名無しさん
NGNG0185デフォルトの名無しさん
NGNGSetMediaFormatだかTypeだったか、それっぽい名前
0186デフォルトの名無しさん
NGNG0187デフォルトの名無しさん
NGNGそんなこたあない。
指定しなかったらほぼ全てのカード・デバイスで単にドライバのデフォルト値の
サイズ、色フォーマット、フレームレートになるよ。
0188デフォルトの名無しさん
NGNGパーサフィルターを作らねばならなくなりますた。
COMも触ったことなかった漏れには、DirectShowの壁は高いでつ。
変換フィルタに関しては、概ねわかってきたつもりだけど、パーサフィルタの
PULLモードでの動作などに関しては、資料が少なくてまぢで泣きそう(´・ω・`)
全言語でググっても、濃い情報の載ったページが見つからなかったので、
CPullPinのソース解析してまつが、なにか参考になるサイトなどあれば
教えてください。
0189188
NGNG0190デフォルトの名無しさん
NGNG輝度等を変更したいと思っています.
プログラムでの変更は可能だと思うのですが,
プロパティページって無いのでしょうか?
0191180
NGNGIAMStreamConfig::SetFormatを試してみたのですが,
HRESULT hr;
hr = pAMStreamConfig->SetFormat(amt);
として実行すると,
hr = E_FAIL
が帰ってきます・・・
http://www.microsoft.com/japan/msdn/library/ja/directx9_c/directx/htm/iamstreamconfigsetformat.asp
にはE_FAILなんて無いんですけど(鬱
以下関係ありそうなソースです.
IAMStreamConfig *pAMStreamConfig = NULL;
AM_MEDIA_TYPE *amt = NULL;
amt = (AM_MEDIA_TYPE *)malloc(sizeof(AM_MEDIA_TYPE));
VIDEOINFOHEADER vih;
//IAMStreamConfig に対して出力ピンを問い合わせる
//vihの指定(vih.rcResource, vih.rcTarget)
//amtの指定
pCapture->FindInterface();
0192180
NGNGpCapture->FindInterface();のあと,SetFormatをやってみると,E_FAILになります.
その後FetFormatを実行するとS_OKが帰ってきます.
で,
VIDEOINFOHEADER *vih2 = (VIDEOINFOHEADER *)amt->pbFormat;
printf("bottom = %d\n", vih2->rcTarget.bottom);
とかやってみると,SetFormatで指定したのとは違うのが表示されます・・・
0193180
NGNGFetFormat→GetFormatでした
0194デフォルトの名無しさん
NGNG0195デフォルトの名無しさん
NGNGピンを接続する前に SetFormat してますか?
Capture Pin と Preview Pin があるデバイスの場合、両者で 640x480 とかには
できない、とかそういう制限があることがあるのですが、その辺はOKですか?
AM_MEDIA_TYPE の中身は全て適切にセットしましたか?
(簡便には GetFormat したものを変更するのがラク)。
0196デフォルトの名無しさん
NGNGビルゲイツ := 人間
M$ := ビルゲイツ
DirectX使い := M$の奴隷
よって、
DirectX使いって、まさに宇宙人の奴隷の奴隷だな。カワイソウ...
0197194
NGNGあのまま進化して欲しかったのに、DirectShowになったとたん挫折した。
VideoForWindowsってドライバの出来によって
プレビューのFPSが実力通り出ないことがあるのでそこを直して欲しいのに
過去の物となった今ではそれも望めない...
COM全然分からないYO。ショボーン
0198デフォルトの名無しさん
NGNG禿同。
AVIファイル書き出したいだけなのに、Windowsプログラミングの奥義を窮めねばならんとは。
0199デフォルトの名無しさん
NGNG0200デフォルトの名無しさん
NGNG0201デフォルトの名無しさん
NGNGやるにはどうすればいいんだろう。
0202デフォルトの名無しさん
NGNG0203デフォルトの名無しさん
NGNG0204デフォルトの名無しさん
NGNGDirectXのことは全くわからないのですが
aviから15秒毎の映像をjpgとして書き出す単純な
ソフトを作りたいと思っています。
正直DirectX(この場合DirectShow)を扱うにあたって
どこから触れていけばいいのか皆目検討もつきません。
簡単で大筋の流れでいいのでプログラムの流れを教えてもらえないでしょうか?
よろしくお願いします。
0205デフォルトの名無しさん
NGNG0206デフォルトの名無しさん
NGNG0207デフォルトの名無しさん
NGNGttp://hammer.prohosting.com/~arabo/index.shtml
0208デフォルトの名無しさん
NGNGUSBカメラからの動画をキャプチャしたいと思っております。
USB2.0カメラを、USB1.1のポートにさしても大丈夫ですか?
「遅くなるけど動くよ」という答えを期待しているのですが…
訳あって動作環境がUSB2.0、開発環境がUSB1.1なのです。
よろしくお願いします。
0209デフォルトの名無しさん
NGNG「遅くなるけど動くよ」
0210208
NGNG搭載チップセットによってUSB2.0が
非対応ということがあるようなのですが、
Abit SA7の
SiS 645DXで大丈夫でしょうか?
0211デフォルトの名無しさん
NGNG0212デフォルトの名無しさん
NGNGってのは無し?
0213デフォルトの名無しさん
NGNG大丈夫です。
0214デフォルトの名無しさん
NGNG0215デフォルトの名無しさん
NGNGGetCurrentBufferでメモリに取ってきたデータを加工したあと、
AVIファイルとして出力したいのですが、どうやって書けばいいのでしょうか?
0216デフォルトの名無しさん
NGNG自アプリウィンドウに描画するアプリケーションを作りたい。
DirectShowを使えば実現できるか。
習得とプログラミングにかかる時間はできる限り省きたい。
そうなるとDirectShow以外にもっと簡易な手段はあるか。
ActiveXは理解している。
キャプチャカードは使えるものをこれから選ぶが、無難なのはMTV系か。
OSはXP Pro SP1になると思われ。
0217デフォルトの名無しさん
NGNGフーン(AA略)
0218デフォルトの名無しさん
NGNG流れてくるたびにフレーム内のピクセル情報をメモリ上にグラブしてやればよいという意味なら加納。
ただし別の処理しながら、DVサイズで毎秒30フレーム取れるとは思うなよ。
0219デフォルトの名無しさん
NGNG了解。もう少し突っ込んで調べてみる。
0220デフォルトの名無しさん
NGNG0221デフォルトの名無しさん
NGNGを真似ようと思ったんすけど、VS.net2003 にも DirectX8 SDK にも
combase.h が見つかりませんでしたし、
CUnknown で GREP しても引っかかりませんですた。
どなたか、道標をおながいしまつ・・・
0222デフォルトの名無しさん
NGNG0224デフォルトの名無しさん
NGNG動画として出力したい。ビットマップファイルの集合をAVIとして保存するにはどうしたらいい?
あるいはビットマップファイルとして書き出して、アドビのエフェクトとか使って動画を作成する
べきなのか・・・
0225デフォルトの名無しさん
NGNG入力はDirectShowじゃなきゃ出来ん事が多々あるからしょうがないが、
単純な出力はやぱりVFWが楽
0226デフォルトの名無しさん
NGNGDSのサンプルのContrastとかいうフィルタがあったと思う。
それを参考にしてビットマップ加工用フィルタをつくるとよい。
キャプチャ - 画像加工 - MUX - File Writer とつなげばよいと思う。
0227デフォルトの名無しさん
NGNG0228デフォルトの名無しさん
NGNG>>225、226
ありが�d!!早速調べてみます。
っていうか、なんでマルチメディア系のライブラリ本ってほとんど無いんだYO!
まともなプログラマ以外コード書けねえじゃねえか。こっちは画像取り込んで
加工でして出力できればそれでいいのに・・・。
0229デフォルトの名無しさん
NGNG0230デフォルトの名無しさん
NGNG0231デフォルトの名無しさん
NGNGttp://wwwdoi.elec.nara-k.ac.jp/html/jisyu/dxm/cap2/cap26.cpp
解像度を変えたいのですが、真ん中あたりの
pGrab -> SetMediaType( &amt );
の上に
amt.lSampleSize = 320*240*3;
と追加してみても、変更されません。
どうしたらいいのでしょうか…
SetMediaTypeをやめて
IAMStreamConfig *pConfig;
pConfig->SetFormat(&amt);
としてもエラーがでて停止します。
どうか助けてください。
0232デフォルトの名無しさん
NGNGんで、lSampleSize だけじゃなくてちゃんと BITMAPINFOHEADER 内の
フィールドとか AvgBytePerSec(だっけ?) とかも全部書き換え名。
漏れはこれ以上レスしないんであとは親切さんよろしこ。
0233デフォルトの名無しさん
NGNGやってみます。
0234デフォルトの名無しさん
NGNGデバイスによっては、高い解像度(例えば640x480とか)を Preview / Capture の両方のピンに設定できないものがある。
というか、大半がそうなんだけど。
この場合、使わないほうのピンの解像度を下げてからじゃないと、使いたいピンを高解像度に設定できないので注意。
ピン毎の解像度の設定は目的の IPin から QueryInterface した IAMStreamConfig で行います。
てか、もし
>IAMStreamConfig *pConfig;
>pConfig->SetFormat(&amt);
これ、ほんとにこう2行続けて書いてるんなら、DirectShow なんか触る前に C / C++ の勉強が必須。
0235デフォルトの名無しさん
NGNG>pConfig->SetFormat(&amt);
つか、これで「エラーが出る」で済むのか…。
newしる。
0236デフォルトの名無しさん
NGNG0237デフォルトの名無しさん
NGNG再生中の動画に文字や、現在のビットレート、
時間等を表示するのは難しいのでしょうか。
動画を出力するのと同レベルで出力したのと思っています。
0238デフォルトの名無しさん
NGNG難しい。
0239デフォルトの名無しさん
NGNGこれをアプリ内だけで使う(インストール不要で)と言ったような事は出来るのかな?
と思ったのですが、可能でしょうか?
共有DLLとスタティックリンクのような関係と言うか。
ドキュメントを色々調べてみたのですがそれらしき記述が見当たらなかったので…。
0240デフォルトの名無しさん
NGNGima temoto ni nai kedo,
source ga koko de saraseru teido no ryou nara up site simasu.
0242デフォルトの名無しさん
NGNGCaptureTex サンプルがDLLじゃなくてAP内に実装したフィルタでデコード結果を
受け取って D3D のサーフェスにレンダリングしてるよ。
0243239
NGNGキャプチャデバイスを持っていないのでノーチェックですた。
作りたいのはソースフィルタなのでCaptureTexを参考に
Ballあたりを弄ってみればいいのかな。
なにはともあれありが�d
0244デフォルトの名無しさん
NGNG常に一定のフレームレート(30fps希望)でデータくれる物ってありますかね。
複数デバイスの確認用に一個買ってみたんですが、色々と最悪でした。
0245デフォルトの名無しさん
NGNGごめん。CaptureTex じゃなくて Player ディレクトリの Texture3D だったかも。
0246デフォルトの名無しさん
NGNGDirectShowの方が簡単ですかね
0247デフォルトの名無しさん
NGNGASF だけを相手にするのなら、
Windows Media Format SDK の方が簡単。
DirectShow も簡単っちゃ簡単だけど、
いろんなお作法を沢山知らないと……
0249デフォルトの名無しさん
NGNG解凍ありがとうございます
ASFだけなんでWindowsMediaFormatSDKでいきます。
ただネット上にサンプルとかほとんど無いので苦戦してました。
0251デフォルトの名無しさん
NGNG0252デフォルトの名無しさん
NGNGソースフィルターって直接オーディオレンダラにつなげられないもんですかね?
0253デフォルトの名無しさん
NGNGで、ラジオボタンみたいなのクリックしていけばキャプチャプログラムとかが
作成されるようになって欲しい。はあ、それは20年後の事だろうか・・・。
0254デフォルトの名無しさん
NGNG今もそんな感じだろ。
googleにやりたいことのキーワード突っ込んで
あとは出てきたものかき集めてプログラム組むだけ。
0255デフォルトの名無しさん
NGNG0256デフォルトの名無しさん
NGNGそれを補正しながら画面表示するツール
(まあビデオプレーヤみたいなもの)を
作ってます。
で、今回、TV出力できるように、オーバレイ上に
表示させるオプションを付けたいんですけど、
DSをやったことなくて、どこから手を付ければ
いいのか皆目分かりません。
もしよかったら、ヒントだけでも。。。
0257デフォルトの名無しさん
NGNG非オーバレイで再生出来てるなら何をどうすりゃ良いか必然的に
解るはずだが。
0258デフォルトの名無しさん
NGNGああ、読み込みはVfWから行って、
ツールとしてはほぼ完成しています。
> 何をどうすりゃ良いか必然的に 解るはずだが
そうなんですか。。。 _| ̄|○
0259デフォルトの名無しさん
NGNG始めてじゃ手の付けよう無い悪寒するが。
DDrawのオーバレイサーフェースとかじゃだめなの?
0260デフォルトの名無しさん
NGNG> DDrawのオーバレイサーフェースとかじゃだめなの?
そうでした。動画のオーバレイということで、すぐにDirectShowを
考えてしまいましたが、動画のデコード/エンコードに
DirectShowを使うつもりはないので、DDにこだわる必要は
まったくないですね。
今検索した範囲では、DirectDrawは資料もサンプルも
豊富みたいで、自分の能力でもなんとかなりそうです。
多謝。
0261デフォルトの名無しさん
NGNGDirectShow アプリケーションからそのフィルタを使うようにしてくれれば
このスレの住人としてはうれしい。
0262デフォルトの名無しさん
NGNGtransform filter
renderer filter
の作りがわかってきた。
(Cbasefilterから作るのも少し)
あとはテスト用でsource filterを作ってみるか・・・
0263デフォルトの名無しさん
NGNG0264デフォルトの名無しさん
NGNG0265デフォルトの名無しさん
NGNGActiveMovieの方が先に消えた罠。
#名前が変わったとも言うが。
0266デフォルトの名無しさん
NGNGその作ったフィルタの後ろにffdshowを繋げるとものすごく早くなるんだけど。。。
なんでか分かりますか?
0267デフォルトの名無しさん
NGNGしてんじゃないの。 >早くなる
0268デフォルトの名無しさん
NGNG0269デフォルトの名無しさん
NGNGReal Alternative でぐぐるよろし。
0270デフォルトの名無しさん
NGNG注 GDI、GDI+、DirectDraw、または Direct3D の関数を使ってビットを変更することもできるが、これらの手法についてはここでは説明しない。
てあるのですが、やり方がわかりません。
なにか参考になるサイトなどあれば教えてください。
0271デフォルトの名無しさん
NGNGレス感謝です〜
0272デフォルトの名無しさん
NGNG作ってるんですが、ちょっと質問させてください。
VMR9では、自分の環境ではハードウェア・オーバレイを
使ってないようなんですが、
1) そもそもVMR9は対応してない?
2) ビデオカードのドライバが対応してないだけ?
3) ドライバが対応すればTV出力も可能?
よろしくおねがいします。
0273デフォルトの名無しさん
NGNGDirect 3D or DirectX Video Accelaration (DirectX VA, DXVA) を使ってサンプルを描画しています。
DXVA の方はドライバが対応すれば TV 出力も可能だろーとは思うけど対応してるカードがあるか
どうかは知らない。普通に Overlay 使ったほうがいいんじゃない?
0274デフォルトの名無しさん
NGNGそうなんですか、よく分かりました。
ありがとうございました。
VMR9は、どんなものか知りたくて
試験的にプレーヤ作ってるだけで、
別に実用的なものを作ろうとして
るんじゃないんです。
0275デフォルトの名無しさん
NGNG標準のMS-FileWriterではだめな理由:
1.プレビュー+キャプチャで、キャプチャだけ一時停止することができない。
2.フレーム落ちを極力抑えたい。
前提:
4G超えられること
Type1/Type2のサポート
NTSC/PALのサポート
Dumpフィルタ改だと、ヘッダ部やインデックス部が作られないんだよね。
0276デフォルトの名無しさん
NGNGFMV-BIBLO NE6/700B WIN XP
Mobile PENTIUM III 700 メモリ256 HDD 20GB(残5GB)と外付120GB(2つ)-USB2.0
MPEGファイルをWMVにエンコードするために使っているんですけど
とにかく動作が鈍いんです。(ムービーメーカー2も不安定)
マシンの貧弱さは、わかっていますが、それだけじゃない気がするんです。
ソースファイル(MPG)を選択すると5分以上応答停止状態になります。
(エンコード開始ボタンを押した時なども同様)
待てば必ず回復して普通どおり動作するのですが、ストレスがたまります。
仮想メモリのページングファイルサイズの設定変更などしてみましたが効果なし。
サポートホームページ見てもわかりません。
MPEG2デコーダ&エンコーダの問題かもしれないのですが、よくわかりません。
WME9でMPEGファイルを使用してる方の動作状況を教えてもらいたいです。
このマシンでは、こんなもんなんでしょうか?
0277デフォルトの名無しさん
NGNG0278デフォルトの名無しさん
NGNG↑このプログラムでキャプチャーされた動画像をAVIに保存するプログラムを教えてください。
難しそうだったら、BMP形式で保存するプログラムでもいいです。
お願いします。
0279デフォルトの名無しさん
NGNG荒れさせるしかないよ。
できる奴はもう他の場所へ移ってる。
0280デフォルトの名無しさん
NGNG0281デフォルトの名無しさん
NGNG方法ありませんか?
ポインタなりなんなり。お助けをぅ
0282デフォルトの名無しさん
NGNGサンプルも付いてるし。
0283デフォルトの名無しさん
NGNG0284デフォルトの名無しさん
NGNG0285デフォルトの名無しさん
NGNGバージョンを取得する方法ありませんか?
0286デフォルトの名無しさん
NGNGHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MediaPlayer\9.0\Registration
0287デフォルトの名無しさん
NGNG//コンソールアプリケーションです
CoInitialize(NULL);
CoCreateInstance( CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void **)&pGraph );
pGraph->RenderFile(L"movie.mpg", NULL);
pGraph->QueryInterface(IID_IBasicVideo, (void **)&pVideo);
pGraph->QueryInterface(IID_IVideoWindow, (void **)&pWindow);
pGraph->QueryInterface(IID_IMediaControl, (void **)&pControl);
pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent);
pGraph->FindFilterByName(L"Video Renderer", &pBase); //pBaseはIBaseFilter
pBase->QueryInterface(IID_IDirectDrawVideo, (void **)&pDDVideo);
pBase->Release();
pControl->Run();
pEvent->WaitForCompletion(INFINITE, &a);
取れない環境は以下の通りです
Win2kProSP4 DirectX9.0b MatroxMilleniumG400DualHead 5.92/5.91
補足: WMP6.4の設定でハードウェアアクセラレーションをなしに設定してもWMP6.4上でしっかりオーバーレイ再生されていますorz
0288デフォルトの名無しさん
NGNG「とびっきりSUNDAY,・・・fall in love ♥」
0289デフォルトの名無しさん
NGNGたとえば、
メディアプレイヤーとかをお手軽に作れる → Windows Media SDK
さらに踏み込んだ制御が出来る → Direct Show
とか?
0290デフォルトの名無しさん
NGNG0291デフォルトの名無しさん
NGNG0292デフォルトの名無しさん
NGNGVCでDirectShow(USBカメラ)で取り込んだ画像をDirect3DのTextureとして出力したいと考えています。
どのようなGraphを作成したらいいでしょうか?
どのピンからDirect3D Textureへの変換すればいいでしょうか?
宜しくお願いします。
0293デフォルトの名無しさん
NGNGttp://vision.kuee.kyoto-u.ac.jp/~hiroaki/firewire/directshow.html#stillcap1
ここにあるようにSampleGrabberをかませてそこで生成されたビットマップを
テクスチャとして貼ればいいんでないの?
とDirect3Dのテクスチャの仕組みを知らずに答えてみるテスト。
0294デフォルトの名無しさん
NGNG1つだけじゃない?
テクスチャへのコピーの仕方はTexture3D とか見て。
0295デフォルトの名無しさん
NGNGビデオキャプチャの予約録画とかで、他にオーバーレイを使ってるソフトがあるとうまく録画できないことがあるので
そのプロセスを強制終了するようなモノを作りたいのです。
0296デフォルトの名無しさん
NGNGDirectX 9.0ならCaptureTexやらCaptureTex9サンプル読めば
終わりじゃねーの。
0297デフォルトの名無しさん
NGNGに標準でないですよね??作らなければならないのか〜〜〜
0298デフォルトの名無しさん
NGNGネットワークカメラとの通信方法にも寄るだろうし実装も様々になるんではないかと。
以前仕事であるネットワークカメラからHTTPでMJPEG取り込んで、
下位に流すフィルタをCSourceベースで作ったことあるけど、
ballフィルタなんかのフレーム描画部分を受信した画像で描画するような
単純なものなら、そんなに難しくもないとおもう。
フレームレートとドロップフレームの制御はそれなりに、考慮が必要な気もする。
サンプルがあるんだし、試しに一度実装してみることをお勧めする。
0299デフォルトの名無しさん
NGNGAVIファイルを再生中に停止させて、その画像を保存したく思います。
いったんクリップボードに保存したいのですが、うまくいきません。
ご教示お願いします。
Video *ourVideo= new Video("d:\\test.avi");
ourVideo->Owner = this->pictureBox1;
ourVideo->Play();
ourVideo->Stop;
Clipboard::SetDataObject(this->pictureBox1->Image);
0300デフォルトの名無しさん
NGNG0301デフォルトの名無しさん
NGNG0302デフォルトの名無しさん
NGNG0303デフォルトの名無しさん
NGNG親切でやってあげたのに、酷いね。
撤回しないとマルチだから放置決定だよ?
0304デフォルトの名無しさん
NGNGんなもんMSDN調べりゃ、
いくらでも分かりそうな内容なのによ。。。。
0305デフォルトの名無しさん
NGNG別の掲示板で教えて頂きました。
ただし、C#ですが・・・
お騒がせしました。
0306デフォルトの名無しさん
NGNG0307デフォルトの名無しさん
NGNG0308デフォルトの名無しさん
NGNG別な掲示板じゃないけどな。
★初心者にVisual C++を教えるスレ★ Part12
http://pc5.2ch.net/test/read.cgi/tech/1083585833/468
0309デフォルトの名無しさん
NGNGDirectShowで、カメラとマイクからの入力をキャプチャしてAVIで保存しています。
現在、圧縮なしで保存しているのですが、
どうすれば圧縮をかけられるのでしょうか?
0310デフォルトの名無しさん
NGNG0311デフォルトの名無しさん
NGNG. -‐- .
__ 〃 ヽ :
: ヽ\ ノノノ)ヘ)、!〉 :
'. l(0_)!。-‐ ‐〈リ .
; Vレリ、" (フ/ ;
: l´ヾF'Fl
. ; 〉、_,ノ,ノ :
. /ゝ/´, ヽヽ.
: く/l |_ノト‐'⌒),)
 ̄  ̄ ̄
0312デフォルトの名無しさん
NGNGこういうもんなんですか?
0313デフォルトの名無しさん
NGNG受信した側で静止画を順に表示し、最終的には動画で保存したいと考えています
現在受信側でフレームごとに受信までは出来ているのですが
表示して動画で保存の仕方がわかりません
どうすればいいのでしょう?
GraphEditでJPEGの画像をD&Dすると
「Generate Still Video」というOUTピンを持ったフィルタが出たので
これで出来そうなのですが、このフィルタが何なのかがわかりません
GraphEditのフィルタの一覧「Which filters do you Wont to insert?」に
出ているのでしょうか?
一通り見たのですがわかりませんでした
ご存知の方、教えてください
0314デフォルトの名無しさん
NGNG作成したアプリケーションでグラフが動作している時に、
GraphEditでアタッチしてみたら?
それで構築されたグラフがでてくるとおもうんだけども。
0315デフォルトの名無しさん
NGNG既存のフィルタを組み合わせてもできないと思うよ。
受信した画像にタイムスタンプをつけて順次出力するソースフィルタを作るべし。
Ball サンプルでも見て。
0316デフォルトの名無しさん
NGNGそういうもんです。
CPUパワー食いまくるんで「透過ウィンドウの下に来たときにも表示する」
というレアな用途のためにその実装を考えたんですけど投げ出さないといけなかったわけで。
0317デフォルトの名無しさん
NGNG具体的には、aviファイルをLoadして、SampleGrabberにPinつなぐとエラー(アクセス違反)
DivXとかに対応したいんだよな
どうすりゃいいのよ
むしろ>>312はどうやってんの?
0318デフォルトの名無しさん
NGNGVMR9 なら透明ウィンドウの下でも半透過しつつ再生されるみたいだよ。
031924時間戦い中
NGNGDirectShowでレンダーフィルタ作ってます。
叩き台は、DSサンプルのSampVidなんだが、
コイツをD3D対応にして、且つアロケータでテクスチャを
作成してポインタを取得し、
アップストリームフィルタで自動的にイメージを
書き込ませたいんだけど、どうすればいいと思う?
VMRレンダラではやってそうなので、
そのソースがあれば最高なんだが・・・
0320デフォルトの名無しさん
NGNGm_pCapture->RenderStream(...)のところで
Failed to create IDirect3DTexture9.
と
Could not create the D3DX texture. hr=0x8876086c
ってエラーダイアログがでて実行できないんだけどどうすればいいですか?
教えてエロい人。
0321デフォルトの名無しさん
NGNG0322デフォルトの名無しさん
NGNG教えてくださいよwwwwwwwwwwwwwwwwwwwwwww
MPEG1動画をMPEG-VIDEOとMPEG-AUDIOに分けたいんですよ。
デコーダ通す前のやつ。
んで、
ソースフィルタ-すぷりった -ファイル(.mpv)
-ファイル(.mpa)
とかやりたいんだけど、
mpvとmpa生成するフィルタを「ぷっちでここ」っていうツール見つけてきて
「なんとか.ax」とか拾ってレジストリに登録して、
グラフエディット使って、
mpvとmpaが生成できたわけですよ。
ですが、それをプログラムで書こうと思ったとき、
そのファイル生成するフィルタのGUIDやらは
どうやったら分かるのですかい?
グラフエディットのどっかに書いてある?
あと他になんかいい方法あるなら教えてくれないか?wwwwwww
wwwwwwwwwww
うはwwwwwwwwwwwwwwww
0323デフォルトの名無しさん
NGNG0324デフォルトの名無しさん
NGNG0325デフォルトの名無しさん
NGNG@device:sw:{083863F1-70DE-11D0-BD40-00A0C911CE86}\{E917C616-E850-44DF-8025-44C875B77758}
これざますか?
CoCreateInstance(○○○,
NULL,
CLSCTX_INPROC_SERVER,
○○○,
□□□)
○○○に何を突っ込めばよいか
この情報からわかりますか?
0326デフォルトの名無しさん
NGNGCoCreateInstance(083863F1-70DE-11D0-BD40-00A0C911CE86,
NULL,
CLSCTX_INPROC_SERVER,
E917C616-E850-44DF-8025-44C875B77758,
□□□)
もしやこうか!
0327デフォルトの名無しさん
NGNGCoCreateInstance(E917C616-E850-44DF-8025-44C875B77758,
NULL,
CLSCTX_INPROC_SERVER,
IID_IBaseFilter,
(LPVOID *)&unkoFilter)
0328デフォルトの名無しさん
NGNGhttp://www.google.co.jp/search?q=cache:hwTh6PFey7AJ:www.microsoft.com/japan/msdn/library/ja/directx9_c/directx/htm/selectingadecoderindirectshoweditingservices.asp+%40device:sw&hl=ja&lr=lang_ja
書いてあったwwwwwwwww
おkwwwwwwwwwww
0329デフォルトの名無しさん
NGNG0330デフォルトの名無しさん
NGNG0331デフォルトの名無しさん
NGNG0332デフォルトの名無しさん
NGNG0333は@ c236.125.c3-net.ne.jp ◆cplnFO9T0I
NGNGまずはVC.netでも買ってくるか。
0334デフォルトの名無しさん
NGNGまんどくせ
0335デフォルトの名無しさん
NGNGどうやってやるの?
0336デフォルトの名無しさん
NGNGDirectShowのコンパイルがまったく通らなくなって錯乱中だ・・・
dshow.hのインクルードでコケまくり。
締め切りはあさってなんだよ。。。 たのむよ俺はなにも悪いことしてねぇよ。。。
0337デフォルトの名無しさん
NGNG0338336
NGNGおお、サンプルがビルドできないんだから、俺のプロジェクトなんて通るわけないよな。
なんか楽しくなってきた・・・うへへぐへへ
0339デフォルトの名無しさん
NGNG0340デフォルトの名無しさん
NGNG0341デフォルトの名無しさん
NGNGCompiler Support
Developing C++ applications with the DirectX 9.0 Summer Update requires Visual Studio .NET 2002 or later.
Visual Studio version 6 is no longer supported.
Microsoft DirectX 9.0 SDK Update (Summer 2004) リリースノートより
0342デフォルトの名無しさん
NGNG0343デフォルトの名無しさん
NGNG人事ながらガクブル
0344デフォルトの名無しさん
NGNGリアルタイムなデータをしこしこいれるようにするの
なんかいい方法ない?
ソースフィルタ自作むずかしすぎ。
誰か使えそうなもの作ってないですかのー。
ファイル名の指定とかしなくて、
バッファからデータ入れていけるようなの作ってる人いたら
いいもんあげるから .axとソース頂戴
0345デフォルトの名無しさん
NGNG0346デフォルトの名無しさん
NGNGMPEGの再生したいんだけど、
MPEG1 stream splitterにつながるソースフィルタって
PULL型にしないといけないぽ
あと、スプリッタとつなげるときに、
メディアタイプ合わせて、接続すると思うんだけど、
その辺をどうやるかってのがわからない。
ボールのやつは、つぎにつながってるのが
スプリッタとかじゃなくて、レンダラだっけ?
だからあれを見ても参考にならなかったんですよ。。。
0347デフォルトの名無しさん
NGNGこのクラスは、ファイル リーダー フィルタの作成には推奨しない。ファイル リーダーは、
IAsyncReader インターフェイスを介して、プル モデルをサポートする必要がある。
詳細については、「フィルタ開発者が使うデータ フロー」を参照すること
ってMSDNに書いてある もっとがんばれ
0348デフォルトの名無しさん
NGNGファイルリーダーはプルモデルをサポートする必要があるってことは、
上にも書いたように、
ソースフィルタの出力ピンインターフェースを
IASyncReaderにするってことだと思ってるんだけど、
プッシュモデルで作って、スプリッタにつながるんかなー?
その辺よくわかってない。
ファイルリーダーの作成には推奨しないって書いてあるから、
プルモデルで作らないといけないんだろうけど。。。
そもそもファイルリーダーって言葉自体が曖昧だ!!
ファイルをどう読むんだい!!
既存のやつは、一度でソースフィルタの内部バッファに
丸ごと読み込んでるようだけど、
その辺改造するのが難しい。。。
誰かこういうのやったことある人いない?
0349デフォルトの名無しさん
NGNGやったことはあるけど、仕事でだったからサンプルもコード片も示せ無いよ。
>プッシュモデルで作って、スプリッタにつながるんかなー?
DirectShow 用語での「Splitter」ってのは、ファイル内部のデータ構造を知っていて、
シーク動作をサポートするフィルタのこと。上位のフィルタには IAsyncReader あたりを要求する。
というわけで、Push なら Splitter はダメ。でも MPEG なら Demux が使える(TSでもPSでもOK)。
Demux 使うのもマンドクセーってんなら、ソースフィルタが自前でVideo ES と Audio ES の2本
Push するんでもいいけど。
・・・一応答えてみたけど、
>メディアタイプ合わせて、接続すると思うんだけど、
>その辺をどうやるかってのがわからない。
このくらいサクサクっと書けないとこの先厳しいよ・・・外注に出したほうがいいんじゃない?
0350デフォルトの名無しさん
NGNGサンプルのDirectShow/Filters/Async/MEMFile
あたりが参考になるのでは?
asyncio、asyncrdr使えば、ほとんど実装いらないでしょ。
0351デフォルトの名無しさん
NGNGやっぱりこのPUSH,PULLモデルというのはかなり重要なファクタですね。
このパラダイムを軽視して、あるいはまったく知らずにフィルタを開発してると、
実は上位と下位のフィルタで上位はPUSHでつくっちゃいました。下位はPULLでした。
ということになりかねないのかな。
その場合、基底クラスのおかげでつながらないよ、というのなら
そんなことになる前に気がつくのかも知れないけど。
0352デフォルトの名無しさん
NGNGおうよ
欲を言えば付属のリモコンつかえてTV出力にGUIを出せる奴作ってみたいよ
まあきょうVisualstudio.NETの60日評価版つきの雑誌買ってきたド素人なんだけど
0353デフォルトの名無しさん
NGNGなってしまった。
0354デフォルトの名無しさん
NGNG0355デフォルトの名無しさん
NGNGまずはSDKのサンプルでも眺めてみますわ。
0356デフォルトの名無しさん
NGNG調べたらwmstub.libがどこを探しても見つからないのですが。
どうすればビルドできるのでしょうか?
0357デフォルトの名無しさん
NGNGに含まれるファイルだ。
0358デフォルトの名無しさん
NGNGそのエラーに書いてあると思うが↓
---------------------------------------------------------------------------------------
NOTE: To link and run this sample, you must install the Windows Media Format SDK 7.1.1.
After downloading the Format SDK, you can extract a public version of the
WMStub.LIB library, which should be copied to the Samples\C++\DirectShow\Common folder.
This library is necessary for enabling Windows Media content.
Without this library in the Common folder, the link will fail with:
LNK1104: cannot open file '..\..\common\wmstub.lib'
If you remove the WMStub.lib from the project's linker settings, the linker
will fail with this unresolved reference:
WMCreateCertificate
ついでに、ソースにもこんなことが書いてある。
//
// Windows Media 9 Series (code named 'Corona') no longer requires
// a stub library. If using WMF9, we don't need to provide a CKeyProvider
// implementation, and we don't need to link with the WMStub.lib library.
//
WMF9の構成使えば普通にビルド出来るよ。
0359デフォルトの名無しさん
NGNGながしはできますが一枚とるプログラムが完成しません。ビルドまではできるん
ですがActive movie windowを表示して5秒後くらいにwindowが真っ白になってフリーズ
します。回りにdirectX扱える人いなくてほんと困っています。誰か教えてください。
プログラムの流れは
ピンの列挙→main(本文)→フィルタグラフマネージャの作成→システムデバイス列挙子作成
→モニカの列挙→モニカをフィルタオブジェクトにバインド→フィルタを追加
→キャプチャビルだの作成→ファイルライタフィルタの設定→サンプルグラバの生成
→メディアタイプの設定→フィルタグラフの追加→サンプルグラバの接続
→グラバのモードを適切に設定→ファイルへ出力→キャプチャ開始→
→サイズの取得→一枚キャプチャ→バッファ取得→解放
どこが間違っているのかが出ているのか分かりません。分かる人教えてくれませんか?
0360デフォルトの名無しさん
NGNG> windowが真っ白でフリーズ
なんだろう。聞いたことないな 黒じゃなくて白かよ。 白?えー
0361デフォルトの名無しさん
NGNGDirecrXのDirectShowのSampleの下にさ、サンプルソースあるじゃんよ
あれの中のヌルレンダラとグラバサンプルにな、ログ吐くようにちょいと追加してさ
んでそれで繋げてみれば?
0362デフォルトの名無しさん
NGNG0363デフォルトの名無しさん
NGNGぼすけて!
0364デフォルトの名無しさん
NGNG黙れガキ
0365デフォルトの名無しさん
NGNGそれDirectShowの問題じゃなくてWindowの関連付けの問題だからウぜー
0366デフォルトの名無しさん
NGNG>>358
DX9デバッグにしたらビルドできました
どうもありがトン
0367↑
NGNG0368デフォルトの名無しさん
NGNGレスが増えてる!って思ったら・・・残念、拙者ガキですから。
RECT rc;
::GetWindowRect(*hPictureBox, &rc);
m_pGraph->QueryInterface(IID_IVideoWindow, (void **)&m_pVidWin);
m_pVidWin->put_Owner((OAHWND)hPictureBox);
m_pVidWin->put_Left(0);
m_pVidWin->put_Top(0);
m_pVidWin->put_Width(rc.right - rc.left);
m_pVidWin->put_Height(rc.bottom - rc.top);
m_pVidWin->put_Visible(OATRUE);
m_pVidWin->put_WindowStyle(WS_CHILD | WS_CLIPSIBLINGS);
ってやったら画面の左上に表示されてる。
なんでだろ〜。
m_pVidWin->put_Left(0);
m_pVidWin->put_Top(0);
の値いじったら画面上を移動する。
なんでだろ〜。
0369デフォルトの名無しさん
NGNG黙れガキ
0370デフォルトの名無しさん
NGNGwwwwwwwwwあひゃ、ウンコから帰ってきたらレスついてるどうもありがとん!
ってかおれ、
m_pVidWin->put_Owner((OAHWND)*hPictureBox);
じゃないか!
すんまそ解決!
うぺぺぺぺぺぺぺ
0371デフォルトの名無しさん
NGNG0372359
NGNGdo{
pSGrab->GetCurrentBuffer(&bufsize, NULL);
}while(bufsize <= 0);
なぜここが無限ループしているか分かりません。bufsizeは
long *buffer = NULL;
long bufsize = 0;
て宣言しています。なぜ無限ループするかよろしければ教えてください。
0373デフォルトの名無しさん
NGNGマルチとは良い度胸だ
0374デフォルトの名無しさん
NGNGエラーコードは?
あとグラフ構成くらいさらしてくれないと返事できない。
それとメッセージポンプを持つスレッドがそんな風にブロックしてはいけない。
UIスレッドで行いたくてかつ取得できなかったときに繰り返し試行するなら、
タイマイベントやら適当なメッセージやら使うべき。
0375デフォルトの名無しさん
NGNGGetCurrentBufferの戻り値みればなんか分りそうだが。
あとグラバはプレビューピンにつないじゃいけないとかそういうの無かったっけ。
0376デフォルトの名無しさん
NGNG1フレーム分の処理が1/30秒以内に終わらない場合はどうなりますか?
次のフレームは飛ばされてしまいますか?
0377デフォルトの名無しさん
NGNG100MB増加するんだけど
なんか少しずつ読み込むとかの方法は無いの?
0378デフォルトの名無しさん
NGNGレンダラの表示が遅れるだけ。もちろんPCの性能によるんだけどな
例えば29.97fpsのビデオが18fpsぐらいで表示されたりする。
>>377
どこの話?プロセスって例えばプレーヤーとかのプロセス?
フィルタの作りによるべさ
0379デフォルトの名無しさん
NGNGすとりーむ
0381デフォルトの名無しさん
NGNGまだ、プレビュー表示とサンプルグラバーぐらいしか使ってないけど、もっと複雑なことする場合は自分でピンの接続やるべきなのかな?
みんなはどう?
0382デフォルトの名無しさん
NGNGどうやって出力先指定すればいいの?
0383デフォルトの名無しさん
NGNGだいれくとさうんど
0384デフォルトの名無しさん
NGNG「 な ん で こ の す れ の じ ゅ う に ん っ て こ ん な に も て い れ べ る な の ? 」
03854歳
NGNG世の中にはいろいろなレベルの人がいる。
君の様な年長者には明らかなことでも、
自分たちみたいな子供にはわからないことが多い。
だから暖かく見守って欲しい。
それぐらい小学生にまで行かれている方ならわかってほしい。
0386デフォルトの名無しさん
NGNG0388デフォルトの名無しさん
NGNGDshow.hをインクルードするとエラーをはくようになってしまいました。
原因がPlatform SDKにあることを知るまで3時間、ありかを探すまで
2時間以上かかった。何であんなに検索しづらいんだよ>>MS
久々にマジで疲れた _| ̄|○
もうすでにコード書く気力がねえよ。
0389デフォルトの名無しさん
NGNG> 原因がPlatform SDKにあることを知るまで
詳細教えてください。おねがいします。
0390デフォルトの名無しさん
NGNGIID_ICreateDevEnum, (void **)&pDevEnum);
hr = pDevEnum->CreateClassEnumerator(AM_KSCATEGORY_CROSSBAR, &pClassEnum, 0);
pClassEnum->Next(1, &pMoniker, &cFetched);
hr = pMoniker->BindToObject(NULL, NULL, IID_IBaseFilter, (void**)&pFilter);
を実行したらBindToObjectの戻り値で「指定されたファイルが見つかりません」という
エラーコードが返ってきたのですが
この「指定されたファイル」を特定するにはどうしたらよいのでしょうか?
0391デフォルトの名無しさん
NGNG>>389
OSがWinXP SP1で Visual C++6.0 SP6 の環境なのだけど、
DirectX_SDK9 2004Update を入れると strmit.hの
typedef DWORD_PTR HSEMAPHORE;
でコンパイルエラーが生じるようになります。
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
なので、ここからSDKのダウンロードをおこない開発環境を更新する必要が
あるそうです。
あと、更新後に統合環境のツール->オプションでディレクトリの項目に
"\Microsoft SDK\Include"のフォルダの追加も手作業でやる必要がありました。
0392デフォルトの名無しさん
NGNG0393入門者
NGNGどうやればいいの?
pMediaSeeking -> put_SetPosition() とかやればいいの?
自分が指定した時刻の再生、停止方法がわからない
0394デフォルトの名無しさん
NGNGDX9ヘルプの「グラフのすべてのフィルタの削除」をミロ!
>>393
IMediaPosition::put_StopTimeでできるかもしれない
それかIMediaSeeking::GetPositionsで指定した時刻になったらポーズしろい
0395デフォルトの名無しさん
NGNG特に時刻とか位置のシークなんぞ。
0396デフォルトの名無しさん
NGNGスプリッタの出力 pin に ControlStream でセットするのが理論上完璧な手法。
だけれどもメディアイベントで時刻を見て適当に Pause なり Stop する原始的なやり方の方が
なにかと安全。>>395 の言うようなケースとか。
0397おしっこ
NGNG動画ファイルによっては8倍とかできないものがあるのはなぜ
0398デフォルトの名無しさん
NGNG・パーサフィルタ作った人が無能だったから
・パーサフィルタ作った人が「こんな仕様も判らんものサポートできるかぁ」と切れて
非サポートを決めたから
0400デフォルトの名無しさん
NGNGないですかね?
0401デフォルトの名無しさん
NGNG0402デフォルトの名無しさん
NGNGフィルタの類はRanderFile()で自動生成なんだけど
0403デフォルトの名無しさん
NGNGオーディオレンダラはクロック発生源なので、Tee改変してあらかじめつないでおいて
とか簡単にはできないよ。オーディオレンダラを自作するのが早道だと思う。
0404デフォルトの名無しさん
NGNGKbMedia Playerみたいな?
0405デフォルトの名無しさん
NGNG0406デフォルトの名無しさん
NGNG0407デフォルトの名無しさん
NGNG0408デフォルトの名無しさん
NGNG0409デフォルトの名無しさん
NGNGって自分で答えかいてるじゃん
0410デフォルトの名無しさん
NGNGUSBカメラの映像にエフェクトかけて表示するのって楽しそうだね。
> 工学ナビさん(www1.bbiq.jp/kougaku/koukaku.html)で公開されている”笑い男摸倣ツール Catcher in the Rye”の俺バージョン(パクリ)を作ってみました。
> 公開に耐えうる状態になったので公開してみます。
> 俺バージョンは複数の顔をあのロゴでマスクできます。
> USBカメラをお持ちの方は試してみてください。
> ここで配布してます。
> www.geocities.jp/laughing_man_lol/index.html
>
> 今のところ、バージョン0.1って事で・・・。容赦してね・・・。
0411デフォルトの名無しさん
NGNG何気にアップグレードしてるね。
面白い。
0412デフォルトの名無しさん
NGNG再帰ですか?
すごいテクニックですね!
0413デフォルトの名無しさん
NGNGムッ。
その書き方だとスタックオーバーフローで昇天だな。
0414デフォルトの名無しさん
NGNGその表現気に入った
0415デフォルトの名無しさん
NGNGデバイス名やCLSID以外解読不能なんだけど
0416デフォルトの名無しさん
NGNGを参考にして、カメラ入力のソフトを作ってみたのですが、
プログラムの動作中にUSBカメラを抜くと、ブルーバックになってOSが落ちました
しかし、毎回落ちるのでは無いようです(なんとも無い事があり、バグがあると気付かなかった)
※ このプログラムのままでも同じ症状になるか試してはいませんが、カメラ制御部は殆どそのままです
上のリンク先のものに、GetCurrentBufferなどの戻り値がエラーかどうかを調べる処理は追加していたのですが、
他には何が必要なのでしょうか?
(恐らく、戻り値を調べるのではなく、実行前に実行可能かどうかを調べる必要があると思っているのですが…)
MSへのレポート結果は、「ドライバが問題なよう」と出ていましたので、
プログラムがカメラ用のドライバを制御中に問題を起こしたようですが…
上記のリンク先ソースではループ内で
hr = pGrab -> GetCurrentBuffer( &n, (long *)img00.lpBmpData );
だけしか行なっていませんが、私のプログラムでは
pGrab -> GetConnectedMediaType( &amt );
VIDEOINFOHEADER *pVideoHeader = (VIDEOINFOHEADER*)amt.pbFormat;
ZeroMemory( &BitmapInfo, sizeof(BitmapInfo) );
CopyMemory( &BitmapInfo.bmiHeader, &(pVideoHeader->bmiHeader),
でBITMAPINFO構造体を取得し、サイズが変更されていればメモリを確保しなおすという内容にしています。
どこが問題か分かる人、教えてください。
0417デフォルトの名無しさん
NGNG自作のレタリング・フィルタを追加することができません。
(再生に反映されない)知ってる方いらっしゃれば教えてください。
自分の試したやり方は
1.タイムラインオブジェクトを作成
2.IRenderEngine からグラフを取得
3.IRenderEngine の ConnectFrontEnd をコール
4.グラフにフィルタを追加
5.IRenderEngine の RenderOutputPins をコール
6.IMediaControl を取得して Run をコール
です。ちなみにDESを使ったオブジェクトを標準の
ファイルライタフィルタに接続してファイルに書き込むことは
できました。
(最悪いったんファイルに出力して、そのファイルからグラフを
自動生成させてフィルタを追加する、ということはできそうです。
時間がかかりますが。)
0418デフォルトの名無しさん
NGNG0419デフォルトの名無しさん
NGNG人間用じゃないから(w
0420416
NGNGもう少し時期を見て、他所で聞いてみます。
0421デフォルトの名無しさん
NGNGそういう種類のドライバのバグは、アプリ側で対応するのは難しいです。
ハードウェアのメーカーに文句を言うしかないでしょう。
0422デフォルトの名無しさん
NGNGプログラムのチェックが不十分なんじゃなくて、このカメラ固有の問題ですか
それなら仕方ないですね。ありがとうございました
0423デフォルトの名無しさん
NGNG発生前に落ちるならどうしようもないけど、落ちない時もあるならイベント発生してる希ガス
0424デフォルトの名無しさん
NGNGオモロイ
0425デフォルトの名無しさん
NGNGそこのソースは見てないけど。予想的に画面が出て見るだけ?
単にIVideoWindowで画面出せば良いだけじゃね?
いちいちビットマップ得てペイントして.....なんてめんどくさすぎ
SDKのヘルプとキャプチャのサンプル見て理解出来れば
簡単にキャプ&プレビューソフト作れるよ
0426デフォルトの名無しさん
NGNG漏れも良く見てないけど、「そこのソース」はイメージをキャプチャしてBMPで保存するものだったと思う。
0427デフォルトの名無しさん
NGNGイベントですか…イベントって事は、引数じゃなくてメッセージで来るんですかね…それともコールバック関数?
イベントのタイミングとか、チェック法とか分からないので、後でMSDNで調べてみます
>>425
ビットマップを得て、画面書き換えです
hr = pGrab -> GetCurrentBuffer( &n, (long *)img00.lpBmpData );
の部分でビットマップを取得しています。
リンク先のものは無限ループ内で連続取得していますが、私はプロシージャのタイマーメッセージで呼び出しています
画像処理ソフトに使いたいので、この方式にしました
0428デフォルトの名無しさん
NGNGttp://www.microsoft.com/japan/msdn/library/ja/DirectX9_c/directx/htm/deviceremoval.asp
俺はDirectShow SDKに入ってる.chmのヘルプを見てるけど
「DirectShow の使い方」って所を一通り見る事を勧める
少なくても基本的なデバイス列挙・レンダの部分(Mixingじゃ無く)は理解したほうがいい
AMCapサンプルの全理解出来れば後々楽だと思う。イベント取りもしてる。
0429デフォルトの名無しさん
NGNGありがとうございます。やっと暇が出来たので、調べてみます。
DirectShowとかキャプチャ部の説明は一通り見たのですが、見ただけだと今一理解出来ない事が多かったので、
プログラムを色々弄りながら少しずつ理解していっている段階です
ある程度、実際の挙動は分かってきたので、もう一度全部見直してみます
(AMCapは以前、途中までソースを追ってみて、脳がオーバーフロー起こしたので強制終了しました…いきなり覚えるにはレベルが高かったです)
0430デフォルトの名無しさん
NGNGMSDVはウインドウレスモードで表示出来ないの?
ActiveMovieWindowって別画面が出ちゃう←たぶんデフォルトレンダラが作られてる
VMR7でDVミキシングは出来ないのかな
VMR9を使うしか無いのでしょうか?
0431430
NGNGRenderStreamの最後の引数にVMRを指定してなかった
VMR追加すれば、それがデフォルトとして動くと思ってた
(ファイルだと指定しなくても収まってくれてたので)
MSDVから直だと音が無いので、ちゃんとフィルタ作成して繋げたらちゃんと出来た
0432デフォルトの名無しさん
NGNGBaseClassesをVC6++でビルドできません。Dswファイルが無いのです。
どうしたらいいのでしょうか?.Netじゃないとダメですか?
あとヘルプには Samples\Multimedia\C++\BaseClasses となっているのですが、
そんなディレクトリはありませんでした。
Extras\DirectShow\Samples\C++\DirectShow\BaseClasses にあります。
これは、特に気にしなくていいですか?
DLしたのは
DirectX 9.0 SDK Update (December 2004)
DirectX 9.0 SDK Update (December 2004) Extras
DirectX 9.0 SDK Update (October 2004) 日本語ドキュメント
です。
0433デフォルトの名無しさん
NGNGUpdate (October 2004) でフォルダ構成やセットアップファイルに変更が
加えられてそのままドキュメントが混乱しているようだ
dsw に関しては、DirectX 8.0 SDK からコピーして使ってる
0434デフォルトの名無しさん
NGNGレスありがとう。
DirectX 8.0 SDK 探しても見つからなかった・・・
どこかに上がってる所は無いでしょうか?
ってMicrosoftになかったら、無いかな?^^;
0435デフォルトの名無しさん
NGNG0436デフォルトの名無しさん
NGNGほんとですか?
*.dsw で検索しても無かったです。
.net のソリューションファイルはありますが・・・
VC6++でビルドしたいので、dswファイルが欲しいのです。
どこにあるのでしょう?
0437432
NGNGDirectX 9.0 SDK Update 2003
を見つけ出し解凍したらありました。
やっと戦う準備が整いそうです。
0438デフォルトの名無しさん
NGNG0439デフォルトの名無しさん
NGNGグラフマネージャはIFilterGraph2を使ってます
IFilterGraph2.Connect(ファイル側のピン, VMR側のピン) ←例外
IFilterGraph2.Render(ファイル側のピン) ←正常
なんでぇ?
それで、VMRは後にしてサウンド側を作って
IFilterGraph2.Connect(ファイル側のピン, サウンド側のピン)
を行うと正常に作成されました
ファイル側のフィルタから、ダウン側に空きピンを探し(MEDIATYPE_Video)
そのピンとVMRを繋ぐとやっぱり例外・・・Renderだと正常。・・・
例外はConnect時に浮動小数演算のオーバーフロー・・がなんとかかんとか
VMRは、標準VMR7、VMR9 両方ともウインドウモード、ウインドウレスモード試したんですが全部駄目でした
ちなみに、GraphEditでそのファイルとVMRを繋ぐとちゃんと作ってくれます
0440デフォルトの名無しさん
NGNGちょっと教えて。
ビデオウインドウのクリーンアップをする時、グラフは停止させずに表示を消す時に、
IVideoWindow(WS_CHILD)の時、IVideoWindow->put_Owner(NULL)
を行うとタスクバーに一瞬ActiveMovieWindowのタスクが表示される。
put_Owner(NULL)をしなければ出ないのですが。
グラフにDVDマネージャを使ってる時に現れる。単純にファイル再生などは出ない。
また、ウインドウレスの時も
IVMRWindowlessControl->SetVideoClippingWindow(0);
をしても表示は消えない。
試しに他ウインドウのハンドルを渡すと、ちゃんとそっちに描画できるのですが
グラフは停止させずに、表示を消す方法はどうしてます?
0441デフォルトの名無しさん
05/01/17 00:48:570442デフォルトの名無しさん
05/01/17 00:57:430443デフォルトの名無しさん
05/01/17 12:58:110444デフォルトの名無しさん
05/01/18 00:20:21動画像を録画できるデジタルカメラを使い動画ファイル(.MOV)を
PCに移して、ISampleGrabberを用いてNullRendererに渡すデータを
取り込み、フレーム毎のBMPを取り出すルーチンを書いたのですが、
WMVファイルではものすごい遅いですが、希望するフレームの
データを取得することができました。しかし、.MOVの場合、最初のフレーム
画像だけデータを取得できるのですが、2枚目以降は1枚目の画像とすべて
同じデータしか取得できないのです。QuickTimeのDirectShowフィルタは、
quicktimealtを使って登録したため、WindowMediaPlayerやDirectShowの
最初のサンプルでは問題なく再生できます。ISampleGrabberだけでなく、
流れてきたデータを取得する他の方法をご存知でしたらお教えください。
また、ISampleGrabberを通して描画するとかなりパフォーマンスが落ちるのですが
もっと高速な処理はあるのでしょうか?
長文で誠に申し訳ありませんが、ご存知の方なにとぞよろしくお願いいたします。
0445デフォルトの名無しさん
05/01/18 05:31:36WindowモードならそのHDCから取る
WindowlessモードならGetCurrentImage
0446デフォルトの名無しさん
05/01/18 14:20:15最終的にRendererにわたるデータと描画されたデータ
というのは同義として見れるのでしょうか?
解像度に依存しないデータを取得したいので
フィルタ通過のデータを取得したいと考えています。
フィルタを通るデータを取得するためには
Grabberかそのようなフィルタを作るしかないのでしょうか??
0447デフォルトの名無しさん
05/01/18 17:47:470448デフォルトの名無しさん
05/01/19 00:56:25非常に簡単に取得することができました。ありがとうございます。
続けての質問で申し訳ないのですが、
TIME_FORMAT_FRAMEをサポートしていない.MOV動画像は、
どのように正確な再生時間を取得すればよろしいのでしょうか?
IBasicVideo::GetCurrentImageを使うにあたり、SetPositionを
使うのですが、フレームをサポートしていない場合時間を設定すると
思うのですが、正確な次フレームの時間が分からないと、真っ黒な
画面になってしまいました。前回一番最初の画面になりっぱなしだったのは、
正確な時間を与えていないためにフレーム取得ができなかったためだと
考えられます。何か良い解決方法をご存知の方がいらっしゃいましたら、
お手数ですが、なにとぞお教えください。
0449デフォルトの名無しさん
05/01/19 01:28:14取りあえず、一通りのタイムフォーマットで試してみては?
少なくてもバイトオフセットなら画は取れると思うけど。ダブリが生じるかも?
0450デフォルトの名無しさん
05/01/19 01:37:38サポートフォーマットを試した結果、
TIME_FORMAT_MEDIA_TIMEのみ、S_OKが返ってきました。
1フレームがレンダされたらCallBackで取得なんて手段は
できるのでしょうか?
0451デフォルトの名無しさん
05/01/19 01:47:43シークしてから、IMediaControl::ポーズ、もしくはStopWhenReadyをしてから、画を取れないかな?
0452デフォルトの名無しさん
05/01/19 02:06:16うー、PauseやStopWhenReadyでもやはりダメです。
IMediaSeekのSetPositionのスタートの値に適当なスタートの
時間(ナノ時間)を入れて、ストップの値に3フレームぐらい経過すると
思われる値を入れて実行すれば画像は取れるのですが、スタート値が
ジャストフレーム値を示していないと駄目な模様です。
ただ、GraphEditでは描画フレーム数を出しているので、何とかすれば
可能なものだと考えられるのですが、その方法が分かりません。
0453デフォルトの名無しさん
05/01/19 02:22:07GraphEditがコマ数表示出来るなら、なにか在るのでしょう
どっかのPINから合致するAM_MEDIA_TYPEと、VIDEOINFOを調べないといけないかな
0454デフォルトの名無しさん
05/01/19 02:43:28描画フレーム数は文字通りレンダラが描画(受信)したフレーム数だと思いますが。
実際のところ、非圧縮AVI以外の形式では、任意のフレームへのシークはほとんどの
場合不可能です。レンダラの手前にteeでも入れて、自前フィルタ経由でシーケンシャル
に絵を取るのが良いと思います。
0455デフォルトの名無しさん
05/01/19 02:56:19まず、IVideoFrameStepでのCanStepメソッドで調べた結果、
マルチプルに0を設定して試したところ、S_OKが返ってきました。
これは!?と思い、
IVideoFrame::Step( 200, NULL );
としてS_OKが帰ってきて、いざ、IMediaControl::Runで実行し
すぐさまPauseメソッドで止めて、IBasicVideo::GetCurrentImage
を実行したのですが、ううー、進んでない...何故に?という状況です。
また、452さんのご指摘では、任意フレームが取れないとのことですが、
実際GraphEdit上でドロップなし描画が行われているので、
再生レートを無視すれば1フレーム画像を取得できるのではないか?
と考えていました。.MOVはMotion-JPEGのため、
コマ再生が可能と考えていたところに甘さがあったようです。
自前フィルタを作る方法しか手段はなさそうですか...。
例えば、レンダーに送信したフレームを横取りする手段としては
どのような方法があるでしょうか?teeは初めて耳にする言葉なので
もしよろしければお教えください。
0456デフォルトの名無しさん
05/01/19 03:05:51Stepの完了はEC_STEP_COMPLETEイベントを受け取った時です。
このときポーズされるので、そこで取らないといけませんよ。
Run、Pauseなどしたら意味がない
0457デフォルトの名無しさん
05/01/19 03:06:34レンダラの手前に Infinite Pin tee を挟みNull Rendererあたりを改造した自前フィルタで取得する、
Direct3D のテクスチャ上に動画を再生するサンプル(AP内部で画像取得のためのフィルタを実装
してます)を改造する、など。
あと.MOVに特化するなら、素直に QuickTime で扱うという手もあります。
0458デフォルトの名無しさん
05/01/19 03:52:48まず、Stepの件は了解いたしました。となると、別スレッドでの
GetEventの監視ルーチンが必要となりますか?Stepメソッドのあと、
イベント取得のWhile文を書いたのですが、む...素通りしてしまう。
このあたりよく分かっていませんのでもっとドキュメントを読んでみます。
また、Step後のIMediaControl::Runで出てくる画面
(実際にはRunしていませんが。)でちょうど200コマ進めた画面が表示される
様になりました。大進歩だと思います。ありがとうございました。
teeの件に関しましては、このコマ送りだと速度が非常に遅いと
思われるので調べてみたいと考えています。ただ、自作フィルタの
作り方から学ばなければ...。なお、QuickTime SDKも落としてきたのですが、
QuickTimeの方が、開発者数が少なく、Webページの情報も
あまり多くないため、DirectShowにしようと考えた次第であります。
0459デフォルトの名無しさん
05/01/19 04:37:31普通にIMediaEventExで設定したウインドウに送られると思いますが
EC_STEP_COMPLETEに限らず、グラフが生成するメッセージの取得が解らなければ、
SDKサンプル見たほうが早いです。ほとんど全てのサンプルに入ってます。
0460デフォルトの名無しさん
05/01/19 09:58:34シャトル再生が出来ない。コレって仕様?
0461デフォルトの名無しさん
05/01/19 14:57:38すみません、テストプログラムなので、consoleアプリで
書いていたため、監視ルーチンが必要だと思ってしまいました。
コマ送りとフィルタ作成を試してみます。ただ、SDKヘルプで
気になる記述が...。IVideoFrameStep::Step「コマ送りは実時間で行われる。」
うそん。フレームレート無視再生で1フレームの画像を取得することが
できそうにないです。やはり、Rendererフィルタ作って、流れてくる
データを見るしかなさそうな気もします。各フレームに分割して
パラパラ漫画で処理したいだけなんだけどなぁ...。
ともかく貴重なご意見ありがとうございました。
0462デフォルトの名無しさん
05/01/19 16:14:16IAMExtTransport::put_Mode()で操作していればの話だけど
ED_MODE_SHUTTLEだったらMSのドライバではサポートされてないよ。
その代わり、
ED_MODE_PLAY_FAST_REV_n
ED_MODE_PLAY_SLOW_FWD_n
ED_MODE_PLAY_FAST_REV_n
ED_MODE_PLAY_SLOW_FWD_n
(n=1〜6)
というのがある。
0464デフォルトの名無しさん
05/01/20 11:37:210465デフォルトの名無しさん
05/01/20 16:23:030466デフォルトの名無しさん
05/01/23 01:34:52左下の10ピクセルが黒くなり、画像がずれて表示されるんですけど
どんな原因が考えられますか?
ISampleGrabberのGetCurrentBufferで
同じような処理した場合は、問題なく画像を取得できます。
Delphiで製作してるんですが資料がほとんど無く困ってます。
0467デフォルトの名無しさん
05/01/23 02:28:19>445 >447.. >457あたりだが、おいらもDelphiだよ。で答えは知らないケド
DIBを展開するほうが間違ってたりしない?
関係ないがInt64にハマッタ
0468466
05/01/23 03:16:39違う人です。
もうわけわからん
0469デフォルトの名無しさん
05/01/23 06:22:43procedure ......Button1Click(Sender: TObject);
var
bw: IBasicVideo;
Buf: PByte;
BufferSize: Integer;
BitStream: TMemoryStream;
NkDIB: TNkDIB;
bmf: TBitmapFileHeader;
dwSize: LongWord;
pbmi: PBitmapInfoHeader;
begin
.......QueryInterface(IID_IBasicVideo, bw);
if not Succeeded(bw.GetCurrentImage(@BufferSize, nil)) then Exit;
GetMem(Buf, BufferSize);
if not Succeeded(bw.GetCurrentImage(@BufferSize, PLong(Buf))) then Exit;
pbmi := PBitmapInfoHeader(Buf);
dwSize := (pbmi.biSize) + (pbmi.biSizeImage) + (pbmi.biClrUsed * Sizeof(TRGBQuad));
bmf.bfType := $4d42;
bmf.bfSize := dwSize + sizeof(TBitmapFileHeader);
bmf.bfReserved1 := 0;
bmf.bfReserved2 := 0;
bmf.bfOffBits := Sizeof(TBitmapFileHeader) + pbmi.biSize +
(DibNumColors(pbmi^) * sizeof(TRGBQuad));
BitStream := TMemoryStream.Create;
BitStream.Write(bmf, Sizeof(TBitmapFileHeader));
BitStream.Write(Buf^, BufferSize);
BitStream.Position := 0;
NkDIB := TNkDIB.Create;
NkDIB.LoadFromStream(BitStream);
Image1.Picture.Bitmap.Assign(NkDIB);
0470デフォルトの名無しさん
05/01/23 06:26:19function DibNumColors(bmi: TBitmapInfoHeader): Integer;
begin
if (bmi.biClrUsed = 0) and (bmi.biBitCount<= 8) then
Result := (1 shr bmi.biBitCount)
else
Result := bmi.biClrUsed;
end;
尚PLongとか引数がポインタ型になってるのは、俺のSDK移植ソースだからそうなってるだけ
ウインドウレスモードも同じ感じでしたけど問題無いよ
0471デフォルトの名無しさん
05/01/23 09:25:40メモリストリーム作ってる所、ヘッダー書いた後
BitStream.Write(Buf^, dwSize);
だ。
DibNumColorsの所、shrでは無くshlだ。
NkDIBではなく、標準のTBitmapでも良い。但しD6で確認。古いVerならNkDIBのが無難。
0472466
05/01/23 11:26:19ソースありがとうございます。
参考にして作り直したところ正常に表示されました。
>>467の指摘通りDIBを展開する方が間違ってたようです。
ホントありがとう。2chで質問してみるもんだなあ。
0473デフォルトの名無しさん
05/01/23 13:49:31結局movファイルをDirectShowで直接扱うのは、
あまりに難しく、AVIに変換してやってます。しかし、
IBasicVideoは重い...。グラバも重い...。
これどうやったら早くなるの...(泣
現在はAppleからQuickTime SDKを
直接たたく方で思案している最中です。
2G超えるため、VFWが使えず難儀していますが、
お世話になった皆様へのせめてもの中間報告です。
DirectShowで解決できましたらまた、ご報告いたします。
0475デフォルトの名無しさん
05/01/23 18:12:47BSプレイヤーとかさくっと終わってるんですけど、タスクマネージャを見てると、オイラのはマックスパワーガリガリ使ってます。
C++とかでDirectShowを直叩きしてるのとどんな違いがあるんでしょうか。
もしかしてAudioVideoPlaybackってDirectShowのラッパじゃないんですか?
0476デフォルトの名無しさん
05/01/23 18:20:17C#で書いてないから分からないけど、マネージコードのサンプルとかはどうなの?
重いならそういうもんだろうし、軽いならクリーンアップの仕方がオカシイとか変に
イベントループに陥ってるとか
0477デフォルトの名無しさん
05/01/23 18:48:24>>クリーンアップの仕方がオカシイとか変..
終了処理を整理してみたら、普通にポンと終わるようになりました。
アドバイスThxでした。
0478デフォルトの名無しさん
05/01/25 17:03:38いるんじゃないかと思って質問します。
video for windows での問題
vfwでaviファイルのフレームを取得するとき、
CODECがXviDだと、AVIStreamGetFrameOpenのところで
システム側にエラーが出るんですが、原因がわかりません。
ネット検索すると、英語で同様の質問があったんですが、
誰もレス付けてないみたいで。
Xvidに関連する問題だと思うんですが、原因は分かりませんか?
0479デフォルトの名無しさん
05/01/25 20:45:430480デフォルトの名無しさん
05/01/25 21:14:30たぶん、以下のように第2引数にNULLを渡して
デフォルトのフォーマットを指定してるんだろ。
AVIStreamGetFrameOpen ( pstm, NULL )
BITMAPINFOHEADERを正しく設定して
(とくにbiBitCount)呼び出してみろ。
0481デフォルトの名無しさん
05/01/25 21:41:20山勘だけど、XvidはbiCompressionにBI_YUY2あたりしかサポートして無いと思う。
BI_YUY2 = MAKEFOURCC('Y','U', 'Y', '2') ね。
0482デフォルトの名無しさん
05/01/26 00:59:07ICaptureGraphBuilderでウインドウに表示するところまでは出来たけど
なんかとてつもなく遅くてまるでコマ送りみたいな感じ?なわけで。
GraphEditで試しに繋いだのはちゃんと再生出来るし録画もばっちり。
ちなみにテレビ視聴ソフト”ぬふああ”使うと同じくノロノロです。
0483↑
05/01/26 00:59:480484デフォルトの名無しさん
05/01/26 01:29:05最終表示は標準VMRなのかオーバーレイなのか...
ICaptureGraphBuilderは単にデフォルトのレンダーをさせてるのか...
中間フィルタ作って明示してるのか...
等々
解ってればそういう質問にはならない、{その}フィルタがどうとかのと発展した会話になる
0485デフォルトの名無しさん
05/01/26 14:18:19GraphEdit によるグラフ構築のシミュレーション 外部プロセスからのグラフのロード
とかいうところを参考にして
GraphEditだけで作ったグラフと、実行しているソフトのグラフを見比べる。
CPU負荷が全然違うのなら、Windowsアプリの作り方の問題かもな。
0486デフォルトの名無しさん
05/01/26 15:46:04感謝感謝です。
スレ違いにもかかわらず、
ありがとう。うまくいきました。
0487デフォルトの名無しさん
05/01/26 16:01:41必要なグラフを自分で全部用意して自力でピン接続してみれ
それで正常に機能するならRander〜がタコな繋ぎ方してるのが原因
0488デフォルトの名無しさん
05/01/26 20:58:080489デフォルトの名無しさん
05/01/26 23:12:24エンコードにdivxつかってfourcc=m4s2なasfファイルを作りたいんですけど。
aviにならちゃんとはけているので、AsfWriterフィルタ使って
IConfigAsfWriter2::SetParamで
AM_CONFIGASFWRITER_PARAM_DONTCOMPRESSをセットして
グラフをconnectDirect()しようとするとエラーになります。
なにか呪文が足らないのでしょうか?
0490デフォルトの名無しさん
05/01/27 00:54:00connectのが良いですよ
0491489
05/01/27 01:13:07するモードでネゴシエートされるので、connectDirectしろと
ヘルプに書いてあったので。
そんな変なasf誰もほしくないんでしょうか?
初期のi-motionとか、小型端末系でasf食うやつって、ファイルは
asfだけど、コーデックはWMでなくてmpeg4系を指定されてるのが
意外とあるんです。
0492デフォルトの名無しさん
05/01/27 01:21:06その.grfファイルを
「プログラムによる GraphEdit ファイルのロード」でいいじゃん
0493デフォルトの名無しさん
05/01/27 13:33:51そんな機能あったのね
0494デフォルトの名無しさん
05/01/28 11:12:44このようにデバイスに依存せずグラフを構築する方法ってありまするか?
AMCAPのソースが参考になったけど、あれってUSBカメラとTVキャプチャカードの両方が接続された環境だと正しく動かないんだよね。
だれかヒントちょうだい。
0495デフォルトの名無しさん
05/01/28 12:08:07Microsoft謹製 Windows Movie Maker の動作(ビデオソース、チューナ、
それぞれをユーザに選ばせる)が限界だと思われます。
0496デフォルトの名無しさん
05/01/28 18:04:34サンプル見たりヘルプみたりしてりゃ分かりそうなもんだが
0497デフォルトの名無しさん
05/01/29 00:52:55自動でやる方法が知りたいんです。
ふぬああみたいなのは勘弁。
0498デフォルトの名無しさん
05/01/29 01:11:42列挙でDevicePathとか固定値があればそれでもいいだろうし
#言っておくがふぬああ??なんて知らないし、〜〜みたいな・・なんて言われても知らん
0499デフォルトの名無しさん
05/01/29 04:42:27そもそも、キャプチャカードとUSBカメラ両方つながってたら、どうすんのよ。
↑の人たちも言ってるけど、選択させる方向か、
どうしても自動化したいなら、それこそアプリケーションで独自に実装するべきでしょ。
0500499
05/01/29 04:43:370501デフォルトの名無しさん
05/01/29 06:01:23aviにするかwmvにするか、またまたプレビューのみとかでグラフが違ったりするでしょ
>494は自分の使ってるものしか考慮していないみたいだけど、
チューナ機能の無いキャプボードもあるし、MSDVもあるし、
自動化するなら全メーカーのDevicePath毎にグラフを作るのか?そんなの現実無理だろ?
ある程度のパターンは決めておけるが。
それよりデフォルト動作で何がしたいのだ?
特定フィルタの在るMonikerを選択するのか?
デフォルトレンダしてQueryInterfaceが掛かったら..と判断するか
それとも固定グラフの作成を試みてエラーが出たら駄目と判断するか
どっちでもいいんだが、君が言ってる事は都合のいい事なだけで、
どういう実装するかはあんたが決めること。仕事で客が居るなら要件を決めること。
使う側はMonikerが複数の場合はFriendlyNameあたりで選べるようなのが良いと考える。
次回起動時に同じMonikerがあれば初期選択してもいい。←こんなのは実装次第
勝手に作られて別のキャプボードも選べないような物は要らない
0502ぽこぺん
05/01/30 21:31:50こいつがD3Dのバージョン古いやつに定義してるらしくて "d3d9.h"が正しく読み込まれません。
MSDNのISampleGrabberヘルプには
"ヘッダー : Qedit.h をインクルードすること。このヘッダー ファイルは、バージョン 7 以降の Microsoft® Direct3D® ヘッダーとは互換性がない。"
とか書いてあるんですが、これって
「ISampleGrabber使うんだったらD3D Ver9は使うな」ってことでしょうか?
回避策ってないんでしょうか?
0503デフォルトの名無しさん
05/02/05 22:26:01一つの関数の使い方理解するのに丸一日使ったりする俺だけど,これは俺のスキル不足が原因で,ある程度慣れた人ならDirectX関連のプログラムってすらすらかけるの?
どうなのよ?
0504デフォルトの名無しさん
05/02/05 22:30:17大丈夫、2〜3ヶ月でなんとかソフトつくれるようになったから。
0505デフォルトの名無しさん
05/02/06 00:48:15VFWだと2〜3週間で作れるのに?
0506デフォルトの名無しさん
05/02/07 00:16:48MSDNにあるサンプルを参考にすれば理解も早いのでは?
俺はサンプルをほとんどそのまま流用しているけど。
0507デフォルトの名無しさん
05/02/07 16:18:17誰も答えてくれてないが,俺も同じ内容ではまったことがある。
結局解決できずに諦めた。
みんなはどうしてるの?
0508デフォルトの名無しさん
05/02/08 01:50:16I/Fと同じなら、そこだけパクって無理やりコンパイラに分らせるとか。
試してないけど。
0509デフォルトの名無しさん
05/02/12 02:38:31まさかWOW64経由で32bit DLL呼んでいるってことはないだろうな?
0510デフォルトの名無しさん
05/02/12 23:13:52毎回メモリリークしていきます。
ぐぐってみると「キャプチャデバイスのドライバによってはメモリリークする」と
書いてる開発者もいるんですが、スタックダンプを見るとリークしてる
アロケーションを実行してるのはquartz.dll内部なんです。
DShow使うの止める/フィルタグラフ止めない、以外に何か対処法ないでしょうか。
0511デフォルトの名無しさん
05/02/13 13:44:42取り忘れているIMediaEventが溜まっているのが原因でした。
0512デフォルトの名無しさん
05/02/13 14:26:47抽象的杉
0513デフォルトの名無しさん
05/02/23 00:08:49フィルタを補完して簡単に繋がってくれますが
(意図しない場合もありますが)
そのような処理はソースコードではどのような処理になるのでしょうか?
builder->RenderPin(NULL,NULL,Filter,NULL,NULL)とかだと
接続できなかったというエラーが出てしまっています。
0514デフォルトの名無しさん
05/02/23 11:03:02ハンドル数が増えます。
かといって_CrtSetReportModeでリークをチェックしてもひっかからないし。
PowerDVD + DirectX9SDK 2004Summerなんですが、バグでもあるんでしょうか?
0515デフォルトの名無しさん
05/03/02 00:12:01をインストールしたんだけど、DirectShow関連のヘッダやらlibが見つからん…
8の頃は一緒にあったような気がしたんだけど、どこにいったん?
0516515
05/03/02 00:44:260517デフォルトの名無しさん
05/03/04 00:12:41ビデオのサイズにぴったりと合わせるにはどうすればいいの?
そのまま720,480とか指定したんじゃ枠の分小さくなるでしょ?
枠のサイズはLUNA等で環境によって違うから定数使うわけにも逝かないし
0518デフォルトの名無しさん
05/03/04 08:40:36IBasicVideo::GetVideoSize
0519デフォルトの名無しさん
05/03/04 09:51:41子ウインドウ枠の1ピクセルや2ピクセルくらい減ってもいいだろ
0520デフォルトの名無しさん
05/03/04 18:47:15AdjustWindowRect?
0521デフォルトの名無しさん
05/03/04 22:16:06put_WindowStyle(WS_CHILD );
put_WindowStyleEx(~WS_EX_CLIENTEDGE);
でIBasicVideo::GetVideoSizeの値からput_Width/Height;
0522デフォルトの名無しさん
05/03/05 19:45:02DirectShowに代わる新しい仕組みでもできたの?
0523デフォルトの名無しさん
05/03/05 22:11:420524デフォルトの名無しさん
05/03/08 23:08:580525デフォルトの名無しさん
05/03/08 23:14:36MS>コロコロ変えないと、新しいものを買って&使ってくれないじゃないか
MS>MSDNの変更ネタにもなるしな!
0526デフォルトの名無しさん
05/03/08 23:38:530527デフォルトの名無しさん
05/03/10 23:32:520528デフォルトの名無しさん
05/03/10 23:37:050529デフォルトの名無しさん
05/03/11 01:00:070530デフォルトの名無しさん
05/03/11 16:25:590531デフォルトの名無しさん
05/03/11 16:26:210532デフォルトの名無しさん
2005/03/21(月) 19:07:52未定義のエラーが出まくり。 VC6じゃもう駄目なのか?
DWORD_PTRとかそれらしいのは定義出来ても、PinとかのDShowの
根本が未定義と言われてしまってはどうにも出来ん・・・
0533デフォルトの名無しさん
2005/03/21(月) 20:11:400534デフォルトの名無しさん
2005/03/21(月) 20:29:35コンパイル通って、リンクの段階で未解決だかと言われてから挑もうと
思ってましたが、先に作らないと駄目なんでしょうか?
これVC6でLIBにするのかなり無理がありそうな・・・・・・・
0535デフォルトの名無しさん
2005/03/22(火) 17:46:22プロジェクトコンバータを発見、DWORD_PTRとLONG_PTRを定義し、
二カ所キャストしたらBaseClassesは無事ビルド出来、以前書いた
ソースも殆ど手直しせずにコンパイル出来ますた。
ここで詰まった話全く見掛けませんでしたが、VC6使いの方々は
皆自力でメイクファイル書いてらっしゃるのでしょうか?
それとも2/9/2005以前のリリース分にはVC6用のプロジェクトも
付いてたんですかね?
0536デフォルトの名無しさん
2005/03/22(火) 18:47:12GraphEditからはいじれる事を確認したのですが、自分でプログラムから
扱うにはどうしたらいいのでしょうか。
pBuilder->SetOutputFileName(&CLSID_Dump, L"C:\\hoge.dat", &m_pMux, &m_pSink);
こんな感じであってますか? ただ上記の様に書くと
> captest error LNK2001: 外部シンボル "_CLSID_Dump" は未解決です。
とリンクエラーが出てしまいます。何をリンクもしくはコードとして何を書けば
使えるようになるんでしょうか。
0537デフォルトの名無しさん
2005/03/22(火) 19:08:370538536
2005/03/22(火) 22:01:09DEFINE_GUID(CLSID_Dump,
0x36a5f770, 0xfe4c, 0x11ce, 0xa8, 0xed, 0x00, 0xaa, 0x00, 0x2f, 0xea, 0xb5);
とあるんですがこれをインクルードするとリンクエラーが出るんですよね。
0539536
2005/03/22(火) 22:10:10#include <initguid.h>をDEFINE_GUIDの前にインクルードしてやると
実体が出来るんですね。ばっちりダンプされました。
0540デフォルトの名無しさん
2005/03/25(金) 17:47:25Debugでビルドすると、こんな事言われてしまうのですが、解消する事は
出来るのでしょうか。
strmiidsは、\Lib\x86にlibとして入ってるので、再コンパイル出来ませんし・・・
0541デフォルトの名無しさん
2005/03/25(金) 22:08:55strmbasd.libとちゃうのん?
0542デフォルトの名無しさん
2005/03/25(金) 22:15:56strmbasd.lib(strmiids.obj)のメッセージから、strmbasd.lib構築の際に
リンクしたstrmiids.libに問題があると思ってたのですが、strmbasd.libの
構築方法で回避出来るのでしょうか?
一応デバッグ関連の設定ちまちま弄ってはみたのですが、何やっても
同じエラーでした・・・
0543デフォルトの名無しさん
2005/03/27(日) 04:06:350544デフォルトの名無しさん
2005/03/27(日) 10:12:11リージョンだとかレイヤードウィンドウを使ったウィンドウを被せたりする
と、描画性能がやっぱり落ちてしまうのでしょうか?
やはり枠を付けるのならDirectShowの映像ミキシング機能を使うべきなので
しょうか?
当方では高い描画性能を必要とするアプリを書いております。
0545デフォルトの名無しさん
2005/03/27(日) 15:29:22自分で試すって事をしないのかい?
0546デフォルトの名無しさん
2005/03/27(日) 16:37:50一方の時計アプリはレイヤードウィンドウ、もう一方は不定形リージョンを使用していると思われる物です。
時計アプリその物の負荷をちゃんと差し引いて考えた所、両アプリの場合でしっかりと重くなる事を確認致しました。
失礼致しました。
0547デフォルトの名無しさん
2005/04/06(水) 14:52:49GraphEditで、キャプチャデバイスのプロパティで「明るさ」や「コントラスト」
を設定できますが、これをプログラム内から変更する方法を調べています。
智慧をお貸しください。
…DirectShowとは関係ないかも知れませんが!
0548デフォルトの名無しさん
2005/04/06(水) 15:30:39IAMVideoProcAmp
0549547
2005/04/06(水) 18:46:10ありがとうごぜぇやす!出来ました!
何故これに気付かなかったのか…。
不甲斐ない。
0550デフォルトの名無しさん
2005/04/06(水) 19:05:31ところでstrmbasd.lib構築時とアプリでの使用するランタイムライブラリは一致してる?
0551デフォルトの名無しさん
2005/04/07(木) 20:19:55FillBufferが呼ばれなくなるんですが何が原因なのかさっぱりわかりません。
トレースしてみるとIMemInputPin::Receiveでブロックしてしまっているようです。
何が原因かわかる人いますか?
0552デフォルトの名無しさん
2005/04/08(金) 05:44:21デフォだった、マルチスレッド(DLL、デバッグ)で揃えてみたり色々
してみましたが、変わりませんでした。
ちなみにstrmiids.libは 2004/10/29 309,056byteですが、皆さんの所と
同じ物でしょうか?
0553デフォルトの名無しさん
2005/04/13(水) 00:48:07DirectShowでVBR圧縮されたMP3を再生すると、取得できるDurationが実際より長くなるという現象がおきたのですが
これに関する情報ありませんか?
0554デフォルトの名無しさん
2005/04/13(水) 02:56:450555553
2005/04/13(水) 03:08:14mp3しか調べてないが、まさかwmaとかでもVBRだとずれるのかな?
一度wavに変換するという糞手法を使えば解決可能ではあるが……
0556デフォルトの名無しさん
2005/04/17(日) 18:03:27(サンプリングじゃなくて音の)周波数やゲインはどうやったら
調べられますでしょうか?
0557デフォルトの名無しさん
2005/04/17(日) 18:40:310558デフォルトの名無しさん
2005/04/17(日) 20:02:212.生データが手に入ったらあとはFFTで楽勝
0559デフォルトの名無しさん
2005/04/22(金) 03:32:28僕も同じ症状になりました。
VisualC++ 6.0を使用していませんか?
だとしたら、DirectX SDKのサポート対象外というのが原因のようです。
ttp://www.gdncom.jp/general/bbs/ShowPost.aspx?PostID=25558
VisualStudioをバージョンアップするか、SDKを古いものにすればいい話ですが、
やっぱりお金をかけずに新しいものを使いたいですよねぇ……
0560デフォルトの名無しさん
2005/04/22(金) 03:37:17お金をかけずに最新環境使いたいならこれで我慢すべし。
最新のIDEも使いたいとかなめたこと言ってるならしらんが。
0561デフォルトの名無しさん
2005/04/23(土) 17:17:010562デフォルトの名無しさん
2005/04/23(土) 17:39:240563デフォルトの名無しさん
2005/04/24(日) 20:59:35偶にDirectShow関係のスレッドでデッドロックを起こすんだけど、この原因と
してVFWとDirectShowの同時使用が絡んでいるという事はあるのでしょうか?
0564デフォルトの名無しさん
2005/04/24(日) 21:07:180565デフォルトの名無しさん
2005/05/17(火) 19:45:24ファイルのソースフィルタとスプリッタの間に入る
Streamを調べるフィルタを作ろうとしています。
sample\filters\Grabberをベースにしていますが
そのままだとプッシュフィルタなのでプルフィルタに改造しようと
CSampleGrabberInPinにCPullPinをヘルパークラスとしてメンバに追加し、
CSampleGrabberOutPinにIAsyncReaderを追加しています。
とりあえずGraphEditでソースと接続するところまではできたのですが
次のスプリッタとの接続処理中にCTransInPlaceFilter::DecideBufferSizeで
入力ピンのアロケータを取得しようとしたところでNULLが返り
例外で落ちてしまいます。(入力ピンのm_pAllocatorがNULLらしい)
こういった用途のフィルタの場合、それぞれのピンのアロケータは
本来的にはどのタイミングで割り当てられるものなんでしょうか?
私の実装がおかしいんだとは思うんですが、
入力ピンが接続が完了しているのにアロケータが取れてないのがおかしいのか
出力ピンがそのタイミングで入力ピンのアロケータを参照するのがおかしいのか
まったく見当がつかない状態でほとほと困っています。
このあたり見れ、とかアドバイスおながいします。
DirectShow資料なさすぎで…( ´・ω・`)
0566デフォルトの名無しさん
2005/05/18(水) 13:19:37スプリッタの入力ピンは(出力側の)IAsyncReaderで動作するわけだから、
自前のアロケータは持たないんじゃない?
CSampleGrabberOutPinではダメだ、ってこと。
0567デフォルトの名無しさん
2005/05/18(水) 13:21:44>ファイルのソースフィルタとスプリッタの間に入る
>Streamを調べるフィルタを作ろうとしています。
追記。もっと言えば、スプリッタはIAsyncReaderを用いてファイルを
適当に読んで動作するわけで、ファイルソースとスプリッタの間で
上の引用部にある「Stream」なるものは存在しないと考えた方が良い。
0568デフォルトの名無しさん
2005/05/18(水) 14:49:41> スプリッタの入力ピンは(出力側の)IAsyncReaderで動作するわけだから、
> 自前のアロケータは持たないんじゃない?
> CSampleGrabberOutPinではダメだ、ってこと。
改造した CSampleGrabberOutPin は CTransInPlaceOutputPin と IAsyncReader から派生していて、
IAsyncReader::RequestAllocator() でスプリッタのアロケータ要求に対して
CSampleGrabberInPin のアロケータを返すような流れで考えていたのですが、
この辺の処理がちゃんと実装できていないか、
スプリッタから見て2つ上流のアロケータを使いまわそうとすること自体が
間違っているような気がしてきました…
えと、まずは RequestAllocator() の実装が正しいのかチェックしてみます。
0569デフォルトの名無しさん
2005/05/18(水) 14:55:46> 追記。もっと言えば、スプリッタはIAsyncReaderを用いてファイルを
> 適当に読んで動作するわけで、ファイルソースとスプリッタの間で
> 上の引用部にある「Stream」なるものは存在しないと考えた方が良い。
そうですね…単にファイルをぶつ切りにしたものでチャンクとかそのままかも。
フィルタができれば CSampleGrabber::Transform() で吐いて調べられるんですが…
最悪自前でフォーマット解析を覚悟しておきます。
0570デフォルトの名無しさん
2005/05/18(水) 15:56:53CTransformFilter にしないで CAsyncFilter から派生させて
入力ピンを追加するという実装にすると思います。
0571デフォルトの名無しさん
2005/05/18(水) 19:37:14> CTransformFilter にしないで CAsyncFilter から派生させて
> 入力ピンを追加するという実装にすると思います。
sample\Async\Filter の CAsyncFilter から IFileSourceFilter を削って入力ピンを付けるってことですよね。
ほとんど CBaseFilter に近い形になって、フィルタ内のピン同士を連携するメソッドを
たくさんオーバーライドしないといけないような印象があるんですが実装は難しくないですか?
CTransFormFilter の中身とか全然見てなかったのでちょっと躊躇しています。
この辺を理解してないのもマズいとは思うんですが、スキルいっぱいいっぱいなので…( ´・ω・`)
あとでもうちょっと詳しく見てみます。
0572デフォルトの名無しさん
2005/05/24(火) 21:57:42(ストリームの起点が複数存在することになる
そのフィルタを作って、どんなフォーマットデータの何を調べたいのか
それを教えてくれれば代替案が出てくるかもよ
0573デフォルトの名無しさん
2005/05/25(水) 01:28:22SampleGrabberだとメジャータイプMEDIA_videoしか横取りできませんが
それのMEDIA_stream版を作りたいのです。
サブタイプはAVI、MPEGあたりになるでしょうか(まだそこまで絞ってません
とりあえずピン接続は完了してて
AsyncFile->SampleGrabber改->Splitter->decoder->Render
まで繋がるところまではきました。
でもフィルタグラフをPlay(orPause)状態にすると
基底ライブラリが例外を吐いて落ちてしまいます。
CPullPinが読み取り用のワーカースレッドを起動しててその中で落ちてるんですが
サブスレッド内ではブレークで止めることが出来なくてどこなのかはわかりません。
泣きそうです( ´・ω・`)
SampleGrabber上流のアロケータがらみの問題のような気はするんですが
アロケータはAsyncFileとSampleGrabberのどっちが提供してるのかなぁ…
他にもいろいろヒントになるので適当に投げてもらえると助かります。
0574デフォルトの名無しさん
2005/05/25(水) 20:27:17570 に一票
てーか漏れなら CBaseFilter と CBasePin から作るけど
・入力ピンでは接続先出力ピンの IAsyncReader を取得する
・出力ピンでは、すべての要求を入力ピンで取得した IAsyncReader に丸投げする
・フィルタ本体は何もしない
これだけでしょ?
0575デフォルトの名無しさん
2005/05/25(水) 22:12:46いや、そんなに簡単じゃないって。CPullPinのコード読んでみーよ
グラフがランするとPullPinがReaderに送信要求を出し
Readerが要求に答える(データを送信する)って流れだぞ?
※PauseでPullPinのワーカスレッドが起動する
>>573
>それのMEDIA_stream版を作りたいのです
Streamをグラブしてもあんまり意味ないと思うが。ソースフィルタはあくまで
サンプル流すだけで、1サンプル1フレームで完結してるなどの保証は無い
単にデータ解析したいだけなら、PullPin繋いでCompleteConnect中で
取得したIAsyncReaderのSyncReadでいいんじゃね?
0576デフォルトの名無しさん
2005/05/25(水) 22:31:30ダウンストリームに繋ぐ必要あるのかい?
0577デフォルトの名無しさん
2005/05/25(水) 22:47:55格納できるようにしました。
表示する際のサイズを可変にして拡大縮小したいいのですが、
バッファに展開する際にサイズ可変にすることは出来るので
しょうか?最悪取得したDIBを表示させる際にサイズ変更し
ようかと思っているのですが。
接続時にメディアタイプを直接指定でVIDEOINFOHEADERの
rcTarget,rcSrcを変更してもエラーになってしまいます。
アドバイスよろしくお願いします。
0578デフォルトの名無しさん
2005/05/26(木) 00:17:30表示ってレンダラ?ならフォーマットチェンジ
0579577
2005/05/26(木) 01:19:33返事ありがとうございます。
表示される際のサイズ可変というのは、例えば
128×128のムービーファイルがあったとして、それを256×256や、
64×64のサイズで表示したいということです。ウインドウサイズ等にあわせて。
で、そのときに元のオリジナルサイズのデータは取得できるようになったのですが、
伸縮まで行った結果をバッファが直接受け取れるのでしょうか?
レンダラはCBaseVideoRendererを継承したものを使用しているのですが、
フォーマットチェンジが今ひとつよくわかりません。
もう少しヒントいただけますでしょうか。よろしくお願いします。
0580デフォルトの名無しさん
2005/05/26(木) 11:02:51んー CPullPin に相当する部分の処理は下流につながってる AVI スプリッター
なり、MPEG スプリッターの入力ピンがやってくれるはずなので。
・ストリームグラバの入力ピンは FileSource フィルタの出力ピンと接続できる
・ストリームグラバの出力ピンは FileSource フィルタの出力ピンに見える
(こいつに下流フィルタの CPullPin 相当部分が要求を出す)
を達成できれば質問主の目的は解決するだろう。
ただ、基本的にスプリッターフィルタの IAsyncReader への要求ってランダム
アクセスになることが多いから、データを横取りしてもその先が大変だと思う。
0581デフォルトの名無しさん
2005/05/26(木) 21:22:32ストリームグラバの出力ピンがスプリッタの入力ピンと繋がる時に
(ストリームグラバの入力ピンが持ってる)IAsyncReaderのポインタを
使うってことね ならストリームは流れそう
だけど、グラバフィルタのどこでサンプル捕まえる?
0582デフォルトの名無しさん
2005/05/26(木) 21:44:13表示の映像に関してはレンダラ(オーバーレイ)が勝手に伸縮してくれるよ
グラバなんかで取得するバッファについてはサンプルに格納されるサイズそのまま
なので自分の都合で伸縮する必要がある
RGBにしてもYUY2にしても、それほど難しくないから自分で伸縮ルーチン書くと良いよ
0583デフォルトの名無しさん
2005/05/26(木) 23:34:58どうもありがとうございます。
取得したフレームをムービー以外のDIB画像と合成したり
する必要上オーバーレイの手法ははずしています。
今現在アロケータからバッファを取得しているDIBクラスの
ほうには拡大縮小の機能を実装しているので目的の達成自体は
可能なのですが、やはり処理速度を考えると伸縮まで行った
バッファを展開してもらえる方法がないのかと思いまして
今回の質問をしました。
それでは取得したバッファを自前で拡大縮小する方向で行おう
と思います。
どうもありがとうございました。
0584デフォルトの名無しさん
2005/05/27(金) 13:11:58"Cannot find 'PLAYWND'(or one of its components). Make sure the path and file name are correct and that all the required libraries are available."
といわれて実行できません。
リンクしたlibの内、対応するdllがないものは strmiids.lib のみですが、これが原因なのかと疑っているものの、strmiids.dll などというものは見あたらず、
かといって、これをリンクしないと、_IID_IBasicAudio,_CLSID_OverlayMixer,_CLSID_FilterGraph,_IID_IGraphBuilder などのシンボルを解決できずにリンクできません。
途方にくれているところです。知ってる人、何か助言ください!
環境: Platform Builder 5.0
OS: Windows CE 5.0
プロジェクトの設定(Addtional libraries):
$(_PROJECTROOT)\cesysgen\sdk\lib\$(_CPUINDPATH)\coredll.lib $(_COMMONSDKROOT)\lib\$(_CPUINDPATH)\Ole32.lib
$(_COMMONSDKROOT)\lib\$(_CPUINDPATH)\commctrl.lib $(_COMMONSDKROOT)\lib\$(_CPUINDPATH)\commdlg.lib
$(_COMMONSDKROOT)\lib\$(_CPUINDPATH)\strmiids.lib
0585デフォルトの名無しさん
2005/05/27(金) 13:14:410586573
2005/05/30(月) 14:28:32>>575-576
フレーム単位の加工ではなくて、
PSやTSのパケットヘッダの抜き出しとかを
ダウンストリームに流しつつ行えないかなーと思ってます。
なのでフィルタの繋がりは変えられそうにないんですよー。
>>581
> だけど、グラバフィルタのどこでサンプル捕まえる?
出力ピンのIAsyncReaderの各メソッドでは
入力ピンのPullPin->GetReader()で取ったIAsyncReaderの同名メソッドを
引数そのままで呼び出すようにしてますので
SyncRead()あたりで引っ掛ければいけそうですね。
この流れだとフィルタのTransformメソッドには来ないかも。
基本的には580さんの考え方と同じだと思うんだけど
何がいけないんだろ…( ´・ω・`)
やっぱCBaseFilterとCBasePinから作るしかないのかなぁ。うーん。
0587デフォルトの名無しさん
2005/05/31(火) 16:53:52Dim fm As FilGraphManager = New FilgraphManager
Dim ime As IMediaEvent = fm
Dim ip As IMediaPosition = ime
ip.Rate = 2.0
て書いたら(VB.net)、「実装されてません」と言われました。
どこに問題がありますか?
0588デフォルトの名無しさん
2005/05/31(火) 17:06:00ちゃんと繋いであげないと、IMediaPosition等は取得できない。
初めてなら、適当なファイルでRenderFile とかするのが簡単。
0589587
2005/05/31(火) 17:37:28サンプル見て、↓こんなのを書いてみました。
Dim timeline As AMTimeline = ....適当データ
mRenderEngine = New RenderEngine
Call mRenderEngine.SetTimelineObject(timeline)
mRenderEngine.ConnectFrontEnd()
mRenderEngine.RenderOutputPins()
Call mRenderEngine.GetFilterGraph(mFilterGraph)
Dim fm As FilGraphManager = mFilterGraph
fm.Run()
Dim ime As IMediaEvent = fm
Dim ip As IMediaPosition = ime
ip.Rate = 2.0
Rate行がなければ画像が出てくるのだが、
このままだと「実装がありません」と言われる。
AMTimelineに条件でもあるのかな?
0590デフォルトの名無しさん
2005/05/31(火) 17:49:04ip.Duration などは取得できる?
DirectShow のコンポーネントのうち、主にスプリッタやパーサ、ソースフィルタが
IMediaPosition を実装しているわけだけれども、メディアの種類毎にある各種の
フィルタが必ずしもなんでも実装しているわけではない、ということ。
再生レート変更不可能なものも普通に存在する。
0591587
2005/05/31(火) 18:22:55RenderEngineが使うグラフはたぶんIMediaPositionを実装してない場合があるという意味ですか?
RenderEngineからグラフを取得してるので
自分でグラフを選んでいるわけではない点がまずい?
どうすれば実装してるものを選べますか?
0592デフォルトの名無しさん
2005/05/31(火) 18:47:48COM では「この機能は実装していない」というエラーコード(E_NOTIMPL)が存在します。
で、今回の Rate プロパティのように、インタフェイス自体は実装していても、
その中の特定の機能が実装されていない、ということもあるわけです。
>どうすれば実装してるものを選べますか?
簡単な方法はありません。
Rateでの速度調整はあきらめて、タイマー等で CurrentPosition を変更して
早送りなどをするのが妥当だと思います(うまくいかないこともありますが)。
0593587
2005/06/01(水) 09:06:41たびたびすいません。
>簡単な方法はありません。
簡単でなければ方法はあるんでしょうか?
0594デフォルトの名無しさん
2005/06/01(水) 13:20:34>簡単でなければ方法はあるんでしょうか?
set_Rate をサポートしているスプリッタやパーサフィルタを持つ
グラフを自前で構築して、それを用いればよいわけです。
ファイルからの再生で単に加速や原則だけしたいのであれば、
オーディオレンダラ(多くの場合基準クロックを供給する)を自作して、
音声の加減速処理を行いつつ速いクロックや遅いクロックを供給する
という手段もあります。
0595デフォルトの名無しさん
2005/06/04(土) 12:56:340596デフォルトの名無しさん
2005/06/04(土) 13:38:47タイムスタンプつけてポンポン送ればおーけー
静止画用意するほうが大変だと思う。
0597デフォルトの名無しさん
2005/06/21(火) 00:07:16DirectGraphicsで描画したサーフェスをムービーとして取り込もうとしています。
↑を参考に、CPushSourceBitmapを改造して、ようやくサーフェスの絵がAVIに出力できたというところです。
それで、現在はFillBufferとDirectXの画像が非同期なので、これを同期させてやりたいと思っています。
IMediaSeekingを使ってフレームの最終フレーム数と現在のポジションを取得できるようですが、
CPushSourceBitmapやCPushPinSourceBitmapとIMediaSeekingがどのようにつながっているのかイメージできません。
なんとなくIMediaSeekingがどこかでpinとつながっていて、pinが必要な値を返すのだろうと考えたのですが、
pinやCStreamにそれらしいメンバ変数やメソッドはありません。
このあたりどのように考えればよいのでしょうか?
0598デフォルトの名無しさん
2005/06/21(火) 00:08:400599デフォルトの名無しさん
2005/06/21(火) 00:24:54デバッグとか個人的な物で2Gオーバーとか考える必要無いなら、
VFWで書いてしまうのがてっとり早いと思う。
0600デフォルトの名無しさん
2005/06/21(火) 00:33:03実はVFWは以前使ったことがあります。
それで非圧縮のAVIに出力していました。だいぶ昔のことです。
やっぱりVFWがいいのかなぁ…。
0601デフォルトの名無しさん
2005/06/21(火) 01:09:40DirectShowでなんで非圧縮の話を持ち出すんだ
つか、最終的に得たいファイルはaviなのか
0602デフォルトの名無しさん
2005/06/21(火) 02:09:550603デフォルトの名無しさん
2005/06/22(水) 00:11:02そんな名前だったけか?
とにかくソースの出力ピンクラスを派生元に向かって見ていけば
IMediaSeekingがいるよ たぶん いなかったらいない
0604デフォルトの名無しさん
2005/07/12(火) 21:56:080605デフォルトの名無しさん
2005/07/12(火) 23:20:180606デフォルトの名無しさん
2005/07/21(木) 15:48:14CyberLink DVD Navigatorを使うと上手く再生できますが
DVD Navigatorだと再生できません。
なぜでしょうか?
0607taka
2005/07/21(木) 20:47:32Text.cpp ファイル20行目に
#include "vmrutil.h"
とありますが、このファイルは VMR\inc フォルダに入っているのであって、
Textプロジェクト内には挿入されていないですよね。
どうしてこのプロジェクトはこのファイルを参照することができるのでしょうか?
教えてください。
Visual Studioの環境設定なのでしょうか?
それともコード中のどこかでこのファイルを参照できるように設定しているのでしょうか?
初歩的な質問ですみませんが、よろしくお願いします。
0608デフォルトの名無しさん
2005/07/21(木) 20:57:200609taka
2005/07/21(木) 22:05:00お返事ありがとうございます。
その設定画面の場所を教えていただけますか?
0610デフォルトの名無しさん
2005/07/21(木) 22:57:050611デフォルトの名無しさん
2005/07/22(金) 03:29:04スレ違いだな。
0612デフォルトの名無しさん
2005/07/22(金) 16:10:12読み込み速度を、 0x8000 で動かしていると、 0x65b000 からの読み込みを最後に終了。
実際は Length( ... ) でもって取得しても 0x8a6e804 と存在はしているのですけどねぇ。
0613デフォルトの名無しさん
2005/07/22(金) 22:40:060614612
2005/07/23(土) 16:43:00DirectX9実践プログラミングのSampleのAsyncで140Mほどのmpgを再生すると途中で再生が終了しちゃうのですよ。
0615デフォルトの名無しさん
2005/07/23(土) 23:21:080616612
2005/07/24(日) 07:07:32えっと、起動時の第2引数。通信速度、だったっけ、あそこは。
そこに適当に32768と入れてる。まぁ、これが1024だったところで、うちでは同じ幻象が起きてましたけど。
0617デフォルトの名無しさん
2005/07/24(日) 11:50:040618612
2005/07/24(日) 21:52:02色々書きすぎて何のことやらわからないね……。
簡潔に言うと、
DirectX9実践プログラミングのSampleのAsyncで140Mbyte以上のmpgを再生した時に
正常に再生は始まるけど、途中で終わっちゃうのです。
結構中身を色々とデバッグで覗いて見るも原因が分からないのです(;´Д`)
0619618
2005/07/25(月) 17:23:12DirectX9実践プログラミングのSampleじゃなくて、DirectX9SDKのでしたorz
0620618
2005/07/25(月) 18:02:19初心者質問スレに書いた方がよかった希ガス orz
あまり気長にも待てないけど……それでも気長に待とう o...rz
マルチするのもアレだし(;´Д`)
0621デフォルトの名無しさん
2005/08/05(金) 23:31:31一旦Ctrl+Alt+Deleteからタスクマネージャを起動して止めようとすると、何故か再生が始まっています。
ちなみにMCIウィンドウから再生しようとしても同じ症状が起こってしまいました。
ちなみに設定→読み込みまでは何ともなくて、再生メソッドに来たとたん止まります。
これってwmvの方に何か問題があって止まってしまうんでしょうか?
0622デフォルトの名無しさん
2005/09/13(火) 17:09:53フィルタを作るのと、
ISampleGrabberにてイメージを取得して加工し、DrawDibDrawで描画するのは、
どっちがいいのでしょうか。簡単な方はどちらでしょうか。
0623デフォルトの名無しさん
2005/09/13(火) 23:45:270625デフォルトの名無しさん
2005/09/14(水) 12:38:52ありがとうございます。フィルタ作ってみます。
新たに質問ですが、フィルタって、動作中に外部からイベントやらなんやらで値を与えて
処理を変化させることってできますか?
0626625
2005/09/14(水) 17:59:14結構いろんなことが出来るんですね。楽しいです。
0627デフォルトの名無しさん
2005/09/14(水) 19:53:33IMTimelineを使用して必要な部分を設定し、IRenderEngineを通じてpCaptureGraphBuilder2
から出力をしています。この部分はほぼサンプル通りです。
ところが、元のファイルが720×480、29.97fpsのDV-AVIファイルなのですが、
これで出力したファイルは320×250、15.00fpsの非圧縮(RGB)ファイルになってしまいます。
元の形式のまま出力したいのですがやり方がわかりません。どのようにしたら元の形式で出力できるのでしょうか。
ご存知の方よろしくお願いいたします。
0628デフォルトの名無しさん
2005/09/14(水) 23:07:45IRenderEngineの代わりにISmartRenderEngineを使えばできるはずです。
でも、使用するCODECが対応している必要があります。
AVIだったら大丈夫だと思うのですが・・・。
0630デフォルトの名無しさん
2005/10/11(火) 00:19:03VideoCaptureFilterに付いてるノイズリダクションの設定をいじりたいのです。
どなたかお知恵を拝借お願いします。
0631デフォルトの名無しさん
2005/10/11(火) 01:31:45VideoCaptureFilterって何なのかよくわからんが、プロパティページはあくまでデバッグ用UIだからな
別インターフェースでノイズリダクションの取得/設定が行えるようになってるはず
それ探してみ
0632630
2005/10/11(火) 09:23:58サンクス.プロパティはデバッグ用だったのか.
IKsPropertySetがそれっぽい感じがするので試してみます.
ちなみに,AM_KSCATEGORY_CAPTUREカテゴリのフィルタです.
0633KT06
2005/10/25(火) 16:38:59VBのピクチャーボックスなどに表示できたりはできるのでしょうか?
0634デフォルトの名無しさん
2005/10/25(火) 23:17:43ビデオレンダラを こう チャチャッと組んで ボーンとな VB使ったことねーケド
泡盛うめえええ
0635デフォルトの名無しさん
2005/10/30(日) 09:30:14へんな奴に回答されるとまともな人がレスつけなくなるから困るよな
0636デフォルトの名無しさん
2005/10/30(日) 15:02:290637デフォルトの名無しさん
2005/10/30(日) 17:30:02正確に測っていないから分らないけど1秒単位でしか取得できていないみたいです。
(サンプルのデータ数が88200バイトだから多分ステレオ、44.1KHzで1秒だとおもう。)
もっと細かく取れないでしょうか?
0638デフォルトの名無しさん
2005/10/30(日) 22:14:500639デフォルトの名無しさん
2005/10/30(日) 22:56:280640デフォルトの名無しさん
2005/10/31(月) 00:04:550641デフォルトの名無しさん
2005/11/01(火) 08:58:06サンプル漁ってるのですが見当たりません・・・た、助けてください
0642デフォルトの名無しさん
2005/11/03(木) 12:27:09調査したく、DirectShowでキャプチャするプログラムを作っています。
そこで質問なんですがDirectShowは、1394から流れてきた輝度と色差信号から
RGBに変換する際、忠実に変換しているのでしょうか?
例えば全白画面をAD変換機が忠実に変換していれば、キャプチャしたRGB値は
全て255でしょうか?お願いいたします。
0643デフォルトの名無しさん
2005/11/03(木) 12:54:180644デフォルトの名無しさん
2005/11/03(木) 12:58:130645デフォルトの名無しさん
2005/11/03(木) 22:06:51アドバイスありがとうございました。調べてみるとAD、Directshowとも
スケーリングの面でITU.601の規格を忠実に守っているかどうかなど
不明な点も多いので自作はとりあえず確認だけに留めておいて、複数の
機器で出力してみることにします。IEEE1394出力も付いた信号発生器
売ってないかなー。
0646641
2005/11/04(金) 18:16:41VMR-9ってハードウェアに依存したフィルタなんですか?
例えばDirect3DTexture9がきちんと作成できる環境であっても
ピクセルシェーダが使えないと機能しなかったりするんでしょうか?
私の環境はピクセルシェーダ対応のビデオカードでサンプルは動いているのですが、
dxdiagで3Dアクセラレータを切るとダメになります。(AGPテクスチャアクセラレータは切ってもOKでした)
3Dアクセラレータには色々な機能が入ってると思うのですが、どれがVmr9で使用されているのか分かりません・・・
0647デフォルトの名無しさん
2005/11/05(土) 21:13:46ここ取れると思ったインターフェイスがとれなくてノイローゼになってまつ
0648デフォルトの名無しさん
2005/11/06(日) 19:31:060649デフォルトの名無しさん
2005/11/06(日) 19:54:20わかる。
動くであろうことを前提に、脳内ハイテンションでコードを書いたはいいが、
ハード側のアウトオブメモリやら何やらでコードの大幅な撤回を余儀なくされた時、
凄く虚しくなる。
0650デフォルトの名無しさん
2005/11/06(日) 21:39:46IAMMultiMediaStreamから出力pinを取りたいんです
IBaseFilterとったり色々やってるんですがどうにも取れません
0651デフォルトの名無しさん
2005/11/07(月) 00:48:13IAMMultiMediaStream使ったこと無いから実経験に基づいたアドバイスできねーけど
IAMMultiMediaStream::GetFilterGraphで取得したIGraphBuilderからEnumFiltersで
フィルタ列挙して、知りたいフィルタがいたらEnumPins って流れでいけねーかな
0652デフォルトの名無しさん
2005/11/08(火) 21:52:330653デフォルトの名無しさん
2005/11/08(火) 22:18:03フィルタ開発とかグラフ構築方法とかサンプルグラバの使い方とか
0654デフォルトの名無しさん
2005/11/09(水) 01:33:180655デフォルトの名無しさん
2005/11/09(水) 01:50:060656デフォルトの名無しさん
2005/11/09(水) 03:31:02”MSDNの読み方”って感じのサイトになっちゃうんだなこれがw
0657デフォルトの名無しさん
2005/11/13(日) 11:57:23USB Camera からの画像を mjpeg エンコードした後に取り込むアプリを書いています。
グラフは、USB Camera -> Smart Tee filter (preview はレンダラー) ->
mjpeg encode filter -> SampleGrabber filter -> Null Renderer filter
となっていて、取り込む方法は SampleGrabber の call back です。
グラフを Run して call back をセットすると、callback 関数は呼ばれるのですが、
渡されてくる bufferLen(bufferCB 時)、GetActualDataLength()(sampleCB時)が
毎回同じ値(mjpeg encode filter を入れないで RGB24 でとるのと同じ値)で
戻ってきます。 mjpeg encode して圧縮されてもっと小さい値になってると
思うのですが、どこが「まずそう」か心当たりがある方、ご教示ください。
なお、graph の中に mjpeg encode filter が入っているのは GraphEdit で
確認してあります。
0658デフォルトの名無しさん
2005/11/13(日) 21:16:200659デフォルトの名無しさん
2005/11/15(火) 21:58:52DirectShowを使いUSBカメラから動画をキャプチャーしています。
で、サンプルグラバーでフレームを抜くところまでは出来ているのですが
その後、OpenCVに渡して、動画処理をしたいのですが、OpenCVへ渡すことが
どうしてもできません。だれか、方法をご存知の方はいませんでしょうか?
よろしくお願いします。
0660デフォルトの名無しさん
2005/11/17(木) 06:06:43フィルタの接続なんかもやってくれるんですけど、ソースフィルタに何を使ったらよいのかだけを知りたい場合
なにかよい方法はありますか?RenderFileの機能からダウンストリームの構築機能を取っ払ったような感じのAPIとか。
あとWMVをデコードする場合、WMVideo Decoder DMOとか言うやつが自分のマシンにはあるんですが、
最近のマシンだったら大体これが入っていて、これをつかって再生するものなんですよね?
0661デフォルトの名無しさん
2005/11/17(木) 13:47:30AddSourceFilter
0662デフォルトの名無しさん
2005/11/17(木) 23:00:19ありがとう!!
0663デフォルトの名無しさん
2005/11/20(日) 22:24:32サンプルコールバックで呼ばれる間隔が10fpsくらいなんだけど
こんなもんなの?
サンプルグラバから得られた画像をつなげて動画にしようと思うのですが、
グラフ全体のフレームレートが10fps固定のような感じです。
なぜだかわかる人、教えてください。
0664デフォルトの名無しさん
2005/11/22(火) 00:33:58カメラのフィルタの出力ピンのcaptureピンにつなぐときにメディアタイプが指定できたはず。
そこでVIDEOINFOHEADER(だっけ?)に平均のフレーム間隔を指定できるから
それを33msとかにしてconnectしてみるとか。(自信ないけど)
GraphEditorで出力ピンのプロパティーを見れば大抵はフレームレートがかえられるから、
そのあたりのインターフェースを探してみれば?
0665デフォルトの名無しさん
2005/11/24(木) 12:35:52そんなのを使う > キャプチャする動画の設定
0666デフォルトの名無しさん
2005/11/28(月) 23:01:33ありがとう。
久々に覘いたらレスがついててうれしいかった。
OleCreatePropertyFrameでプロパティウィンドウを出して設定変更してるので
IAMStreamConfig だか IAMVideoStreamConfig だかの代わりになるんだと思ってるけど
違うかもね。
VIDEOINFOHEADERは見てなかった。RGBとかしか設定してなかったから見てみる。
ちなみに10fpsってのはSampleCB関数のなかで、呼ばれたごとに前回からの時間を
GetTickCountでとって調べたんで、誤差があるかも。これが一番あやしい。
33fpsなんで、30ms前後を期待してたけど、100msくらいだったので・・・
もっと精度のある時間測定が知りたいところ。よかったらよろしくおねがいします。
0667デフォルトの名無しさん
2005/11/30(水) 22:59:530668デフォルトの名無しさん
2005/12/10(土) 01:37:17SmartRenderEngineの使い方がわからなく困っています。
RenderEngineでの書き出しは出来ているのですが・・・
IAMTimelineGroup::SetSmartRecompressFormatを呼び出した後は
圧縮されたストリームがRenderEngineのOutputPinから出てくるという解釈で良
いのでしょうか?
0669デフォルトの名無しさん
2005/12/10(土) 18:00:29VisualC++でコンパイルでき、実行できたファイルをWindowsCEで動かしたく、
embedded Visual C++でコンパイルすると
error LNK2001: unresolved external symbol DllCanUnloadNow
error LNK2001: unresolved external symbol DllGetClassObject
とリンクエラーとなってしまいます。
strmbase.libもリンクしてあります。
どうしても解決できないのでよろしくお願いします。
0670デフォルトの名無しさん
2005/12/13(火) 20:56:17いろんなサイトを見るとDirectX8.0〜9.0bに関しての記述が多いですが、Directshowって今はPlatformSDKってのに入ってるんですよね?
さて、質問ですがPlatformSDKってのはVC++6.0で使えるのでしょうか?
0671デフォルトの名無しさん
2005/12/14(水) 00:14:130672デフォルトの名無しさん
2005/12/14(水) 15:52:140673デフォルトの名無しさん
2005/12/14(水) 18:58:23この会社、すげえ寒い
0674デフォルトの名無しさん
2005/12/14(水) 19:13:040675デフォルトの名無しさん
2005/12/14(水) 23:18:29長時間の記録を行うにあたって問題が出てきたので質問させていただきます。
問題とは、映像が音声に対し3%ほど再生時間(MediaPlayerで確認)が長くなってしまうということです。
フレームレートが高すぎるのかとも思い、フレームレートを減らしてみたのですが解決できませんでした。
音声の再生時間が正しいことは、キャプチャ開始時、終了時にtimeGetTime()を行うことにより確認しております。
動画を記録するさい、正確な時間で記録するためになにか工夫が必要なのでしょうか?
現在のグラフは以下のようになっています。
[USB Camera]->[SmartTee]->[AVI Mux]->[File Writer]
[Audio Capture]->[AVI Mux]
よろしくおねがいします。
0676デフォルトの名無しさん
2005/12/15(木) 02:06:29>>675
音声を主にしてみたら?
最初につなげたほうが主になるから、
[Audio Capture]->[AVI Mux]
[USB Camera]->[SmartTee]->[AVI Mux]->[File Writer]
もっと精度のある時間測定はどうなった?
0677デフォルトの名無しさん
2005/12/15(木) 21:18:570678デフォルトの名無しさん
2005/12/16(金) 00:26:11Teeを挿入しているのはCameraからのデータにはタイムスタンプがついておらず
そのままではAVIMuxに接続できたかったためです。
>>676
レスありがとうございました。
で、一応解決できました。
今回はAudioストリームが正確な時間で記録できていたので
AVIMuxからIConfigAviMuxインターフェイスを獲得しSetMasterStream()により
Audioストリームをマスターストリームとしファイルに保存したところ、3%の遅れが出ていた30fpsにおいては
まだきちんとテストはしていませんが動画もほぼ正確な時間で記録することができ、
同期もほぼ取れているようでした。
0679デフォルトの名無しさん
2005/12/16(金) 01:45:440680デフォルトの名無しさん
2005/12/17(土) 00:52:06ライブデータなのにタイムスタンプついてねーの??
0681デフォルトの名無しさん
2005/12/23(金) 16:57:020682デフォルトの名無しさん
2006/01/06(金) 04:08:29なんでー
0683デフォルトの名無しさん
2006/01/06(金) 04:42:370684デフォルトの名無しさん
2006/01/06(金) 17:09:33エンコした動画データをバッファで取得したいのだけど、どうもうまくいかない。
やっぱり自作フィルタ作らないとだめ?
0685デフォルトの名無しさん
2006/01/06(金) 17:57:090686デフォルトの名無しさん
2006/01/07(土) 09:22:19r'´ ,..::'' 'i.、 ,r:'´ .,. `'::.、.i',....=-ヽ
/::'' :: ,/´~>´::.. ../ ::/ ,::' ./'; '; , y'´DirectShow
'´ / / ,::'´ / ./ .,/:' :/ '; '!、 .':, ':, / は
./´ ,r:' ;:' ./ ./ / / / 'il ! ', ', 't! だ
;/ / ,:' ,:' /// // i.!: i .'; i:、 |. め
.// ./ ,y / ;r' /;' j'´ i i i い::!':, .!.. な
'/ ,/ /' / ;:' j'' /_,,.:ノ !.!i ! :| .'; i、. .の
i. /! // / :,/--=‐ ''''''"~` ゝ,i ! i !:'; ?
/i'/ ; /j /.,..-===‐k `''‐ .,_.!i' !:',
.i.i.;' ;' r'ソ! t!'"´/,ノ`ヾヽ ___ `j''‐: ,i i!',
i ii' .; !/.!:! .'i:, .!,.i .,,,:'!、 ,..r=-j‐ミミ:.、i!T `''''!''~!
.! i! ! :! ! :. !:ゝノ´ソ ' ,r''ソ-:'´ :ノ`ミk| ! !
i i ! i'; !!:! ⊂:,t,.....::r'' , ´ i:''t ノyソ ノ''! ソ .i
__!_i,,i ':, !|i/〃 ,ri -t,_ `´ ;:' ´ ! /! ;'
''"~ `ヽ,''t,y " /// ヾj /// ,.`''''"-,つ /! /! /
'k, `k, ,r=‐--- :.,、 /////~´ //i .i:j.;'
.':, i\ ;' ; ノ_/ノ /:i/
'; ' i! `>、 ', ! _,r''"~// :/ ノ
だ A DShow tj'"~/! ''-,`'‐- ..,,,..ノ ,,...- ''"i'; | './ /
. め P み '! i ! t `'-=--‐ ''" /:!';`'k-y___/:/
. な. I た i ! ';'k, i/' ノ i! 丶丿~'''''‐-:.,
. の はい ! ヽ, '‐=..,,,,,,,,=-‐:'" ノ / /' ヽ
. ? も な i `ヽ,__ _,..;r" / "
. う |'-:., ~''''''""~ ,/
0687デフォルトの名無しさん
2006/01/07(土) 12:14:550688デフォルトの名無しさん
2006/01/07(土) 20:23:420689デフォルトの名無しさん
2006/01/07(土) 20:41:390690デフォルトの名無しさん
2006/01/08(日) 02:44:540691デフォルトの名無しさん
2006/01/10(火) 00:04:42SendDriverMessageでICM_SETSTATE送りつけるのもだめでした。
0692デフォルトの名無しさん
2006/01/11(水) 18:36:55どうすればよいでしょうか
0693692
2006/01/11(水) 18:38:19すみません、XP,DirectX8です。
0694デフォルトの名無しさん
2006/01/11(水) 20:59:29LINK : fatal error LNK1104: ファイル "C:\Program.obj" を開けません。
link.exe の実行エラー
というエラーがでて、実行できません。
どのような理由が考えられますか?
誰かレスお願いしますです。。
0695デフォルトの名無しさん
2006/01/11(水) 21:57:070696デフォルトの名無しさん
2006/01/12(木) 21:27:290697デフォルトの名無しさん
2006/01/12(木) 23:04:240698デフォルトの名無しさん
2006/01/12(木) 23:09:400699デフォルトの名無しさん
2006/01/12(木) 23:43:56を参考に、DirectShowでビデオのキャプチャに挑戦中です。(VC7 + DirectX9)
CCDカメラ <=(NTSC)=> キャプチャユニット <=(USB)=> PC という組合せでやっております。
狙ったウィンドウへの表示は特に問題無くできますが、サイズで疑問があります。
手持のものだと、各種初期化後にIBasicVideo::get_VideoWidth で320が得られます。
この場合、「幅320pixelより大きいウィンドウに表示させても、所謂『デジタルズーム』に
なって、画像そのものの情報量に変わりはない」という認識で正しいのでしょうか?
またキャプチャユニットが、上記の様なデジタルズーム***でなく***、複数の画像サイズ
(例えば320x240と640x480)に対応している事はあり得るのでしょうか?というのも、附属の
ビューアに複数のサイズを選択できる項目があったもので・・・デジタルズームなら
納得のゆく話なのですが。
素人質問で申し訳ないです。「ヘルプ&文献のこの辺読んでこい」というヒントでも
良いので何卒御教示下され
0700デフォルトの名無しさん
2006/01/14(土) 17:31:41入力のデータサイズ自体はかわんねー
ウィンドウサイズを変更しても表示自体はレンダラが上手いことやってくれる
キャプチャユニットが対応してるかどうかはしらね
グラフエディットでキャプチャユニットのプロパティページでも見てみれば?
変更できるなら設定項目があるはず
0701デフォルトの名無しさん
2006/01/14(土) 19:13:38カメラから入ってくる信号はNTSCとかそういう奴でしょ。
よく知らないけどたぶんそれはアナログ信号だから1ラインを何ピクセルにするかはキャプチャデバイスで決める事が可能なんだと思う。
で、何ピクセルにするかはキャプチャデバイスに設定された画像サイズできまるのでは?
ユーザーがCCDカメラについた操作パネルを操作して光学ズームさせたら
そのズームされた映像が取れて、それがキャプチャデバイスに入るだけだろう。
ソフトでキャプチャデバイスにVGAとかやってもキャプチャデバイスからカメラに電文がとんで
光学ズームしてくれますとか、そういう機能はないと思う。
0702デフォルトの名無しさん
2006/01/14(土) 21:19:270703699
2006/01/15(日) 02:40:05>>700
わかりにくくて申し訳ないです。要は「どこまでレンダラが上手くやってくれるか?」なのです。
Platform SDK附属のDirectShowサンプルの"AMCap"でストリーム形式のプロパティページ
が呼べる(IAMStreamConfigから)のですが、手持のキャプチャだと、そこの「出力サイズ」
コンボボックスに320x240、640x480両方の項目あるのです。
ここで640x480を選択することと、手でウィンドウをみょーんと640x480に伸ばすことに、
違いがあるのだろうか?という点で悩んでおるわけです。(見た目には区別がつきません)
恐らく前者がキャプチャデバイスそのものの設定で、後者がレンダラ(StretchBltとか?)の
仕事だと思うのですが・・・
>>701
> 1ラインを何ピクセルにするかはキャプチャデバイスで決める事が可能なんだと思う。
> で、何ピクセルにするかはキャプチャデバイスに設定された画像サイズできまるのでは
私めもそう思います。で、その「何ピクセルにするか?」という設定は、どこから行うか御存知でしょうか?
上記のプロパティページがそうかなと思うのですが、自信が持てないでおります。。。
0704デフォルトの名無しさん
2006/01/15(日) 21:31:13グラフを作るときにキャプチャデバイスの出力ピンにメディアタイプを設定するなどでも変更できると思う。
DirectShowに付属のAMCAP.EXEを動かして望みの動作があったらAMCAP.EXEのソースを見てくれ。
で、まともなキャプチャデバイスならQVGAで取った奴を縦横x2してVGAだとはやらないと思う。
0705デフォルトの名無しさん
2006/01/15(日) 21:35:35キャプチャデバイスが入力されるアナログ信号を
何ピクセルにサンプリングするかで入力画像サイズが決まる
VGAでキャプチャした映像はQVGAより緻密。
つまりQVGAでとったものをVGAにレンダラで引き伸ばせば荒くなり、
さいしょからVGAでとったものをそのままレンダラに表示させれば荒くならない
と、思います。
0706sage
2006/01/18(水) 07:13:150707デフォルトの名無しさん
2006/01/21(土) 12:53:310708デフォルトの名無しさん
2006/01/28(土) 13:53:19アナログ信号→USB接続のハードウェアMPEG2エンコーダ→パソの流れで
アナログ信号をディスプレイ上に映すだけ…なんですが
CrossBar→WDMEncorder→MPEG2DemultiPlexerとつないだところで
DemultiPlexerのプロパティが開けません(Requested Property page could not be displayedと出る)
ネットの資料とかではプロパティからDemuxの出力Pinを作るのですが、これじゃレンダラに届きません
ご教授願います
0709708
2006/01/28(土) 19:29:05「grapheditを使用する前にproppage.dllを登録してください」と言う記述が
登録したら解決しました…orz
graphedit上ではVideo Render迄つながったのですが、実際にグラフを走らせると
真っ黒なウィンドウが出るだけになってしまいました
この場合は、MPEG-2 DemultiplexerのPID設定がマズイのでしょうか
stream_id Mapping、分からない部分は適当にいろいろ試してみたのですが駄目でした
引き続き素人丸出しですが、よろしくお願いします
0710デフォルトの名無しさん
2006/02/24(金) 01:05:56どうすればいいのでしょうか?
0711デフォルトの名無しさん
2006/03/01(水) 11:55:270712デフォルトの名無しさん
2006/03/07(火) 00:18:33よいのでしょか?
できれば参考ソースおよび参考サイト等教えてください。
0713デフォルトの名無しさん
2006/03/07(火) 06:49:20avi,mpgでエンコードしてからファイル名拡張子をwmvに変更する。
0714デフォルトの名無しさん
2006/03/07(火) 10:53:31切断すればいいだろ
サンプルソースをあてにする時点で無理だろうけど
0715デフォルトの名無しさん
2006/03/08(水) 19:28:16素人さんにそんなこと教えちゃダメポ
信じちゃうでしょwww
0716デフォルトの名無しさん
2006/03/18(土) 17:12:41IMediaSeeking::SetRate()で再生速度を変更した上で、
IMediaSeeking::GetCurrentPosition()で再生位置を取得すると、
実際に再生している位置と、取得された位置が一致しません。
例えば、1.2倍速に設定すると、GetCurrentPosition()は1.44倍速(?)で
進んでいき、GetCurrentPosition()が終了位置に達しても、
実際には再生が続いているという現象が起きています。
正しい再生位置を取得する方法はありますか。
0717デフォルトの名無しさん
2006/03/18(土) 17:24:50送られてきたメディアサンプルのタイムスタンプを取得すればいいんジャマイカ?
0718デフォルトの名無しさん
2006/03/18(土) 17:45:24まずはそこから調べないと・・・。
もう少し挙動を調べてみたのですが、GetCurrentPosition()が終了位置に
達したもののまだ再生が続いている状態で、さらに速度変更を行うと、
突然再生が終了してしまいます。ちょっとやっかいかも。
速度変更なんてただのおまけってことでしょうか。
0719デフォルトの名無しさん
2006/03/18(土) 19:21:30サンプルキャプチャ通知コールバックさせれば
現時点でレンダリングしてるサンプルの時間が取れるね。
0720http://www.vector.co.jp/soft/win95/util/se072729.html
2006/03/18(土) 22:01:59もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
そういや64bitにネイティブ対応している2chブラウザてありましたっけ?
0721デフォルトの名無しさん
2006/03/18(土) 23:22:21グラブビルダからの指示を受けたフィルタ内部の話をすると
GetCurrentPositionはレンダラフィルタが返すからね
んでSetRateはシークを担当するフィルタ(普通はパーサ)が処理するんだわ
なのでパーサとレンダラの挙動が上手く一致しないとズレが生じることになる。
通常、レンダラが処理するGetCurrentPositionはサンプルのタイムスタンプを見てるだけ
SetRateで設定した値が正しく反映されていないことも良くある話 要はパーサ次第
SetRateの後でGetRateしてみた?
0722デフォルトの名無しさん
2006/03/19(日) 18:53:44SDKのサンプルの使ってプログラム組んでみたんだけど
サンプルのソースコードを組み込んで使っても著作権的に問題ない?
0723718
2006/03/24(金) 01:15:14取得できました。>>718の後半については、取得した正しい時間で
一度SetPositionsしてから、SetRateすることで対処しました。
>>720
GetRateで確認したところ、ちゃんと設定されていました。
0725デフォルトの名無しさん
2006/03/28(火) 23:42:28ドキュメントは読んだのか?
0726デフォルトの名無しさん
2006/04/15(土) 00:13:58今回3Dテクスチャレンダラーを使用したことで、qedit.hが使えなくなってしまいました。
そこで、IMediaSampleを使ってフレームの取得を考えているのですがうまくいきません。
きれいに一枚のフレームを取り出すためにはどのような処理を行えば良いのでしょうか?
0727デフォルトの名無しさん
2006/04/15(土) 01:16:50MediaDet
0728デフォルトの名無しさん
2006/04/17(月) 14:18:26ないね
うぐ〜DShow氏ぬ
0729デフォルトの名無しさん
2006/04/17(月) 14:23:45492見れ
0730デフォルトの名無しさん
2006/04/17(月) 14:38:55ttp://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/DirectX9_c/directx/htm/loadingagrapheditfileprogrammatically.asp
あったよ
即レスありがとん
0731デフォルトの名無しさん
2006/04/17(月) 17:51:200732デフォルトの名無しさん
2006/04/17(月) 20:35:58自分で書け
0733デフォルトの名無しさん
2006/04/18(火) 00:48:48バカマイクロソフト視ねキチガイ
さんざん調べるとDirectX9.0SDKの2004summer(ばーじょんも沢山ありやがって死ね!!!!)
とか、そのあたりの奴はVC6をサポートしてやがらねぇとくらあ!
お前らに教えておくぜ。そういう時はDirectX9.0 2003 summer updateを使え!
これならまだダウンロードできるしバッチリビルドできた!
がんばれよ!
0734デフォルトの名無しさん
2006/04/18(火) 10:35:13書けません
>>733
下げろタコ
0735デフォルトの名無しさん
2006/04/18(火) 12:08:16エラー処理を除いて考えれば、プログラムで書くのはGraphEdit上でやることと大差ないよ。
フィルタを引っ張り出して、ピンを列挙して、ピン同士をコネクトして、とか、泥臭いけど。
GraphEditで作った構成を再構築したいというのであれば、>>730のでいいんじゃない?
0736デフォルトの名無しさん
2006/04/19(水) 09:59:33OpenGLに流し込む作業を行おうとしているのだけど、すこし確認させて欲しい。
OpenGLで画像を扱うとき、2の二乗(128, 256等)ピクセル長の画像が望ましい。
カメラからSampleGrabberを通じて画像を取得しようと思っているのだが、
まず使用カメラにも依るのだろうがソース自体を任意のサイズに吐き出されるのは
無理とみなしていいのだろうか?
たとえば、手前のカメラだとサイズは、
(352/288) (128/96) (160/120) (176/144) (240/180) (320/240) (640/480)
のモードが見つかるのだが、この中から選ぶことになると。
つまり希望するサイズが見つからなければ自分で加工しなければならないのだろうか?
最終的にSampleGrabberでキャプチャした画像を捕まえるとき、
任意の大きさで取り出せる方法があれば教えて欲しい。
サンプルが見つかれば尚うれしい。その場合、Direct3Dでもかまわない。
助言をおねがいしたい。
0737デフォルトの名無しさん
2006/04/19(水) 10:49:08D3Dで任意矩形にテクスチャマッピングしてそれを取得くらいしか思いつかん
0738デフォルトの名無しさん
2006/04/21(金) 19:50:38ソースフィルタで複合化し、そのデータをMpeg4のフィルタに食わせてやればいいのでしょうか?
サンプルはどれもすぐVideoRenderなのでイメージがつかみづらいです。
0739デフォルトの名無しさん
2006/04/21(金) 20:05:36複合化処理すればいいんですかね?
で、その右にMpeg4のフィルタですかね。
でも単純にMpeg4ファイルをDESで暗号化した場合、
そのファイルをWindowsMediaPlayerにドロップしても
レンダリングしてくれなさそうです。
適切なフィルタを選んでくれる関連付けの仕組みってどうなってるんでしょうか?
0740デフォルトの名無しさん
2006/04/21(金) 20:13:38わかりやすく書かれていると思いますが。
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/directshow/htm/registeringacustomfiletype.asp
0741デフォルトの名無しさん
2006/04/21(金) 20:27:32すみません、日本語のところばかり読んでました。
じっくり読んでみます。
0742デフォルトの名無しさん
2006/04/21(金) 20:32:02キーワードをぐぐってたらヒットしました。
ありがとうございます。
http://www.microsoft.com/JAPAN/developer/library/jpdx8_c/ds/filtdev/Registering_Custom_File_Type.htm
0743デフォルトの名無しさん
2006/04/22(土) 21:44:03GraphEdtではCOMインタフェースのメソッド呼べないぞー
プログラムで書くしかないぞー
0744デフォルトの名無しさん
2006/04/24(月) 15:12:21IMediaPosition->put_Rate(2.0);
で再生速度を変更した後、ピッチの調節がしたいからです。
0745デフォルトの名無しさん
2006/04/24(月) 15:43:17サウンドプログラミング3
http://pc8.2ch.net/test/read.cgi/tech/1145573675/
に来ればアルゴリズムについては教えてあげられるよ。 コードは自分で作りなさい
0746デフォルトの名無しさん
2006/05/03(水) 18:31:49directshowのCaptureGraphBuilder2 で、ファイル出力とプレビューを実現できますが、
ファイル出力ではなく、ネットワークストリームに出力するにはどうすればよいでしょうか。
よろしくお願いいたします。
0747デフォルトの名無しさん
2006/05/04(木) 03:14:38がんばって・・・きっと・・・でしょう
ttp://msdn.microsoft.com/library/ja/DirectX9_c/directx/htm/dsnetworkfilterssample.asp
0748デフォルトの名無しさん
2006/05/04(木) 12:19:50返信ありがとうございます。
やっぱりActivex9の頃のDIRECTSHOWにはその様なフィルターがあったのですね。
Microsoft Platform SDKのDirectShowにはなぜか見あたらないのです。
.NETのtcpかudpと組み合わせればできるのかなとは思うのですが、
初めてなので良くわからないのです。
昔のバージョンをインストールしたほうが良いのかな・・・。
0749デフォルトの名無しさん
2006/05/04(木) 19:04:27フィルターはフィルターだけど、サンプルコードだよ・・
とりあえず手元にあった DirectX 9.0 SDK Update (October 2004) Extras の中を見たらあった。
落として取り出してみれば?
0750direct歴2ヶ月
2006/05/07(日) 11:33:55DVDの再生プログラムで、再生できるのは音のみで、映像が表示されません。何が原因だと思われます?誰か助けて下さい……
0751デフォルトの名無しさん
2006/05/07(日) 12:43:52ビデオデコーダがないんジャマイカ?
0752デフォルトの名無しさん
2006/05/07(日) 12:48:450753direct歴2ヶ月
2006/05/07(日) 13:10:47何度やっても映像が表示されないです。
0754デフォルトの名無しさん
2006/05/07(日) 14:13:42ビデオウィンドウはどんな感じなんだ?真っ黒か?ぐしゃぐしゃな感じか?
0755direct歴2ヶ月
2006/05/07(日) 14:30:49音が流れるだけの状態です。
0756デフォルトの名無しさん
2006/05/07(日) 14:52:250757デフォルトの名無しさん
2006/05/07(日) 15:09:570758Direct歴2ヶ月
2006/05/07(日) 15:11:05RenderDvdInterface()ですよね?
0759Direct歴2ヶ月
2006/05/07(日) 15:12:180760デフォルトの名無しさん
2006/05/07(日) 15:18:14え?表示ウィンドウは自分で用意するんだよ?
0761Direct歴2ヶ月
2006/05/07(日) 15:24:01IVideoWindowのメソッドでしょ?
一般の動画は再生できるんです。ただDVDだけが音声のみで……
0762デフォルトの名無しさん
2006/05/07(日) 15:44:28個別につないでるならグラフ構成書いてくれ。情報少なすぎ
レンダラはちゃんといるのか?こんな感じで構築後に確認してみ?
IBaseFilter *vid = NULL;
m_pGraph->FindFilterByName(L"Video Renderer", &vid);
0763デフォルトの名無しさん
2006/05/07(日) 16:02:15スプリッタとかデコーダが対応してないフォーマットジャマイカ
0764Direct歴2ヶ月
2006/05/07(日) 16:07:52CoInitialize&CoCreateInstanceの後にGetFiltergraphでIGraphBuilderへのポインタ取得
後にRendererDvdVideoVolume
これ以外の、レンダラは無し。
さっきのやつそのまま書いてエラーチェックした所、S_OK以外で失敗?でした
そのまま L"VideoRenderer"でいいんですよね?
0765Direct歴2ヶ月
2006/05/07(日) 16:08:560766デフォルトの名無しさん
2006/05/07(日) 16:15:52> RenderDvdVideoVolume メソッドは、DVD-Video のボリューム再生に関するユーザー指定に従って、フィルタ グラフの作成を完了する。
いいのか?
0767デフォルトの名無しさん
2006/05/07(日) 16:21:02ttp://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/DirectX9_c/directx/htm/dvdfiltergraphconfiguration.asp
0768Direct歴2ヶ月
2006/05/07(日) 16:22:13もし手動で全て繋ぐとしたら、必要なインターフェースとメソッドを教えてください。
0769デフォルトの名無しさん
2006/05/07(日) 16:29:30LPCWSTR lpcwszPathName,
DWORD dwFlags,
AM_DVD_RENDERSTATUS *pStatus
);
戻り値やAM_DVD_RENDERSTATUSの値はチェックしてるか
S_OK以外が帰ってきてるんじゃないか?
0770デフォルトの名無しさん
2006/05/07(日) 16:37:57ここを一字一句飛ばさずに全部読んだか?
0771Direct歴2ヶ月
2006/05/07(日) 16:49:33これは一応用意はした(GetDvdInterface)んですが、使っていません。
あと、MSDNはパソコンでも携帯でも読んだんですが、何が誤っているのかがわかりません。
0772デフォルトの名無しさん
2006/05/07(日) 17:09:19助けて欲しいなら具体的にどのフラグがどの値だったから、とか書かないと。
GraphEditでは再生できるなら、構成に問題は無いんだ。
RenderDvdVideoVolumeのdwFlagsは色々と試してみたか?
0773Direct歴2ヶ月
2006/05/07(日) 17:28:01RenderDvdVideoVolumeに渡すAM_DVD_RENDERSTATUSの、取得したフラグの内容→失敗したストリームはAM_DVD_STREAM_FLAGSのAM_DVD_STREAM_VIDEOです
0774デフォルトの名無しさん
2006/05/07(日) 17:44:320775デフォルトの名無しさん
2006/05/07(日) 17:52:320776デフォルトの名無しさん
2006/05/08(月) 04:23:44最近はGraphEditでRenderDvdVideoVolumeできるように」なったのか。
0777デフォルトの名無しさん
2006/05/08(月) 11:07:30ソース貼れ
0778デフォルトの名無しさん
2006/05/10(水) 22:54:57映像ファイル(*.avi)を再生するにあたり、その再生速度を連続して(40〜60回/sec)変化させるプログラムを組んでいるのですが、よい方法をご存知ではないでしょうか。
Directshowでどうにかなるかな、と思っていたのですが、これの内部処理は"再生停止->再生速度設定->再生開始"となっているようで、実際に走らせて見るとカックンカックンになってしまいます・・・。
再生速度の可変範囲が0〜20倍(ホントは100倍くらいまでの方が都合が良い)なので、MCIを使うことができません(<-勘違い?)。
或いは、フレームをひとつずつ読み込んでは、fpsを可変にしてVRAMに投げた方が良いのでしょうか。
開発言語はCで、開発環境はVisualStudio.NETです。
よろしくお願いいたします。
0779デフォルトの名無しさん
2006/05/10(水) 23:12:23用途がわからんが、DirectShowでやるには無理と思ってください。
0780デフォルトの名無しさん
2006/05/11(木) 00:43:26実現できたら、自分の頭がカックンカックンしそうだな・・・
0781778
2006/05/11(木) 01:17:54うぅ・・・。
更新頻度が10回/sec程度でも不可能なのでしょうか・・・。もしくは、再生速度の可変範囲を0〜2倍程度まで抑えて、MCIを使うことでは解決できるのでしょうか(スレ違いでごめんなさい)。
>>780
それほどまでに難易度の高いものなのでしょうか・・・?
0782デフォルトの名無しさん
2006/05/11(木) 02:27:44おれには想像がつかん。
0783デフォルトの名無しさん
2006/05/11(木) 04:03:530784デフォルトの名無しさん
2006/05/11(木) 20:00:28ただし音声は無理。
0785デフォルトの名無しさん
2006/05/11(木) 20:36:52>>778氏の要望は秒間に40〜60回の速度レート変更
仮に実現できても絵を見る人間には何がなにやら ってとこだろ
>>784のいうように、フィルタ自作してタイムスタンプ直接いじればいいよ
アプリから好きなタイミングで指示だしたいならカスタムインターフェースつければいい
0786デフォルトの名無しさん
2006/05/11(木) 21:02:121秒間に30フレームとしても、1フレームを出す間に2回速度変更とかあるわけ?
いみないじゃんw
0787デフォルトの名無しさん
2006/05/11(木) 22:16:47120FPSのmpeg4とかあるからジャマイカ?
0788デフォルトの名無しさん
2006/05/12(金) 21:05:04出力サイズにあたる部分って、
プログラムからどうやって設定するのですか?
AMStreamConfigだと、
320x240までしかできないんですけど...。
0789デフォルトの名無しさん
2006/05/12(金) 21:43:29そういうデバイスということ。
0790デフォルトの名無しさん
2006/05/13(土) 00:06:59プロパティを表示してから
出力サイズ設定を640x480とかにすると
それなりの大きさにになるし、
みた限りのPCIキャプチャボードでもそんな感じだから
へんだなぁって...。
知らないだけ?
0791デフォルトの名無しさん
2006/05/13(土) 02:12:22出力はaviファイルです。
その時、縦横を反転させて480x640といった縦長画像のプレビューを出して
キャプチャー(こちらも反転)するにはどうすればよいのでしょうか。
0792デフォルトの名無しさん
2006/05/13(土) 02:26:59縦横を反転させるフィルタを作って、グラフにAddする。
0793デフォルトの名無しさん
2006/05/13(土) 03:06:15フィルタ自分で作ったことないですけど、今から勉強してみます
むずそうだなぁ
0794デフォルトの名無しさん
2006/05/13(土) 16:54:41よくわからないけどキャプチャデバイスから320x240でキャプチャして
表示を640x480にしたいの?
その場合表示に関しては単純にレンダラの能力で解像度は320x240
のものを640x480に引き伸ばして表示することは可能。
(但し1ピクセルが2x2ピクセルになるだけだから荒くなる)
静止画取り込みというのはBMPに落とす、というようなことだと思うが
この場合、サンプルグラバを使うと、サンプルグラバを通過するときのサイズが
320x240なら、そのサイズでしか取り出せない(と思う)
0795デフォルトの名無しさん
2006/05/14(日) 07:05:39ありがとうございます。
やりたいたいのは、
キャプチャデバイスの出力サイズを
640x480にすることなんです。
クロスバー->キャプチャ->グラバ->レンダラ
とかでフィルタグラフを作っておいて、
キャプチャフィルタのキャプチャピンの
プロパティ表示から手設定で出力サイズを
640x480にすることは可能なんです。
手設定してやれば、
表示サイズも静止画サイズも640x480になるんですけど、
ソースコードから設定する方法が判らない...。
0796デフォルトの名無しさん
2006/05/14(日) 14:58:200797デフォルトの名無しさん
2006/05/14(日) 23:37:24エラーで返ってくる結果だったんですよ...。
Bt系とかSAA系のPCIボードって、
いくつもみたんですけど、
全部320x240だったんです。
(プロパティからの640x480は可能。)
0798デフォルトの名無しさん
2006/05/14(日) 23:46:08クロスバーってことはS端子入力とかTVチューナーとかついてるボードなのか?
0799791
2006/05/15(月) 07:37:26http://son-son.sakura.ne.jp/mt/blog/2006/04/directshow_1.html
このサイトを参考にDirectShowのカスタムフィルタを作っているのですが、
入力と出力で画像サイズが変わる場合は、どのようにサイズを設定すれば
よいのでしょうか。
とりあえず、GetMediaType()関数の最後に、
*pMediaType = m_pInput->CurrentMediaType();
// 追加部分
VIDEOINFOHEADER *pvi = (VIDEOINFOHEADER *) pMediaType->pbFormat;
ASSERT(pvi);
int width = pvi->bmiHeader.biWidth;
int height = pvi->bmiHeader.biHeight;
pvi->bmiHeader.biWidth = height;
pvi->bmiHeader.biHeight = width;
このようにして、下流フィルタに縦横の大きさを伝えようとしましたが、
graphedt.exeでつないごうとすると、「接続に必要な中間フィルタが見つかりません」
と出て実行できません。
追加部分をばっさりとってしまうと実行できるのですが、正しく表示はされませんでした。
(480x640でデータが並んでいるのを640x480とVideoRendereが見ているため)
よろしくお願いします。
0800デフォルトの名無しさん
2006/05/15(月) 10:55:560801デフォルトの名無しさん
2006/05/15(月) 19:26:55拒否られてんだよ そんなサイズじゃ満足できないってよw
0802デフォルトの名無しさん
2006/05/15(月) 20:55:10たいしたコード量じゃないならGetMediaType全部さらしてみ
0803791
2006/05/15(月) 22:03:47// このフィルタのアウトピンが接続可能なメディアのタイプを返す
HRESULT Through::GetMediaType(int iPosition, CMediaType *pMediaType)
{
// outputピンが対応するメディアタイプを返す
if (m_pInput->IsConnected() == FALSE) {
return E_UNEXPECTED;
}
// ピンの位置のチェック
if (iPosition < 0) {
return E_INVALIDARG;
}
if (iPosition > 0) {
return VFW_S_NO_MORE_ITEMS;
}
// ピンをチェック
CheckPointer(pMediaType,E_POINTER);
0804791
2006/05/15(月) 22:04:49*pMediaType = m_pInput->CurrentMediaType();
// ここから追加した部分
VIDEOINFOHEADER *pvi = (VIDEOINFOHEADER *) pMediaType->pbFormat;
ASSERT(pvi);
int width = pvi->bmiHeader.biWidth;
int height = pvi->bmiHeader.biHeight;
pvi->bmiHeader.biWidth = height;
pvi->bmiHeader.biHeight = width;
return NOERROR;
}
0805791
2006/05/15(月) 22:10:14同期用のポイントを設定しています。
その中に、入力ピン側のメディアタイプを出力側のメディアタイプへコピーする
という部分があるのですが、ここも関連しているのでしょうか?
0806デフォルトの名無しさん
2006/05/15(月) 22:50:10480x640を提示しないとダメなのでは。
(単に縦横逆転だからサイズは同じだろうが)
次にTransformの中でメディアタイプをコピーしてはダメだと思う。
出力メディアタイプのサイズが入力メディアタイプと異なる(縦横逆転)わけだから。
そして自分の力で640x480のビット列を480x640に並べ替えてあげないとダメだと思う。
0807デフォルトの名無しさん
2006/05/15(月) 23:05:50なのでグラフエディットでピンが繋がらないのとは関係ない。
グラフエディットで自作フィルタのアウトピンとダウンストリームのフィルタのインピンをつなぐときに
ダウンストリームのフィルタが自作フィルタに「お前が流す形式は何だ」と聞いてくる
これがGetMediaTypeにあたる。ピンのコネクト中なんかで呼ばれるんだわ
※CopyMediaTypeとか上手く使えよな 自分の入力ピンの保持してるMediaTypeの
ポインタそのままダウンストリームフィルタに渡さないように。
ダウンストリームフィルタはGetMediaTypeで返された形式をみて、受け付けられないものなら
拒否される(結果失敗となる)されることがある。これはダウンストリームの仕様による。
0808デフォルトの名無しさん
2006/05/15(月) 23:14:44これがだめなの?
「ビデオデコーダ」→「自作フィルタ」→「AVI MAX」→「ファイルライタ」
で一回AVI形式にできないかな
0809デフォルトの名無しさん
2006/05/15(月) 23:23:49ttp://www.microsoft.com/JAPAN/developer/library/jpdx8_c/ds/filtdev/Rectangles.htm
0810791
2006/05/16(火) 04:48:02>>806
>まず出力ピンをレンダラなどにつなぐときのメディアタイプで
>480x640を提示しないとダメなのでは。
上に書いたGetMediaType()でこれをやってるつもりなのですが、
何か根本的に間違っているのでしょうか?
>>807
とりあえず接続できるかということと実際に処理できるか、というのは別という
ことですね。
んで、GetMediaType()を正しく書かないと接続すらさせてもらえない、と。
サイズを変えてるだけだから、つなげそうに思うのですがうまくいきません。
ポインタのアドレスの件は少し書き換えてみました。
>>808
「ビデオデコーダ」→「自作フィルタ」→「ビデオレンダラ」ができません。
AVI MUXをGraphEdtで自作フィルタの後ろにつなごうとしたら、
「接続に必要な中間フィルタがありません」のエラーがでて、同様にできませんでした。
>>809
とても参考になります。恥ずかしながら知りませんでした・・・
ただ今回の場合、画像をトリミングするわけじゃないので
直接は関係ないように思うのですが、ここも設定がいりますか?
解説の日本語がすごい難解でw勘違いしているかもしれません。
全領域を使うつもりなので、rcSource,rcTargetともにすべて0設定で
やってみましたがだめでした。
0811791
2006/05/16(火) 04:54:18// 縦横のサイズ以外は一緒なのでコピー
CMediaType pCurrentMediaType = m_pInput->CurrentMediaType();
CMediaType output(pCurrentMediaType);
*pMediaType = output;
VIDEOINFOHEADER *pvi = (VIDEOINFOHEADER *) pMediaType->pbFormat;
ASSERT(pvi);
long width = pvi->bmiHeader.biWidth;
long height = pvi->bmiHeader.biHeight;
pvi->bmiHeader.biWidth = height;
pvi->bmiHeader.biHeight = width;
0812791
2006/05/16(火) 04:55:29pvi->rcSource.bottom = 0;
pvi->rcSource.left = 0;
pvi->rcSource.right = 0;
pvi->rcSource.top = 0;
pvi->rcTarget.bottom = 0;
pvi->rcTarget.left = 0;
pvi->rcTarget.right = 0;
pvi->rcTarget.top = 0;
0813デフォルトの名無しさん
2006/05/16(火) 20:13:05もしかしてVIDEOINFOHEADERじゃなくて
「VIDEOINFOHEADER2」 なんじゃないの?
フォーマットタイプ見て無いだろ
0814791
2006/05/16(火) 23:55:50上のコードで、bmiHeader.biWidthとbmiHeader.biHeightを入れ替えないと
正常に接続できるので(画面は一部が縦になる)、VIDEOINFOHEADERでいいのじゃ
ないかと思うのですが・・・
0815デフォルトの名無しさん
2006/05/17(水) 00:41:50ttp://www.microsoft.com/JAPAN/developer/library/jpdx8_c/ds/ref/structs/struct_AM_MEDIA_TYPE.htm
「思う」じゃなくて確認してくれ
0816791
2006/05/17(水) 03:51:37今確認してみたところVIDEOINFOHEADERでした。
いろいろ調べていますが、うまくいきません・・・
0817791
2006/05/17(水) 08:39:41原因はほんとうにくだらないことでした・・・
プログラムは、EZRGB24 Filter Sampleをもとに作っていたのですが、
その中のCheckTransform()関数に、
if (*mtIn == *mtOut)
return NOERROR;
return E_FAIL;
なんていう記述が・・・
つまり入力と出力の形式を変えると、ここでエラーがとんでたようです。
サンプルコピペはだめですね、ちゃんと読むことにします。
いま縦向きに映るテレビをみていますw
レス下さった皆さん、ありがとうございました。
0818デフォルトの名無しさん
2006/05/17(水) 20:47:580819デフォルトの名無しさん
2006/05/17(水) 22:33:50どちらを使うべきでしょうか?速い方がいいんですが・・・
0820デフォルトの名無しさん
2006/05/17(水) 23:28:02AVIなら自分でRIFFをパース。
とても簡単で高速。
ttp://www.usagi-goten.com/jp/AVI_structure.html
0821819
2006/05/18(木) 00:04:42どうもありがとうございます。
ISO/MPEG-4なども扱います。RIFFではないようなので使えませんねぇ。
DirectShowが無難な気がしてきました。
0822デフォルトの名無しさん
2006/05/19(金) 04:24:02・動画変換が実時間でしか行われない。CPUはできたらパツパツまで使いたい
(Clockを与えなければいけない?)
・エンコードのプロパティを毎回ウィンドゥで設定しなければならないので
設定情報を一括でなにか取り出したり登録したりする方法はないか。
という2点がわからず困っています。開発言語は現在サンプルで検証している
段階なんで、VCかVBです。AviSynthなどを使えばいいのかもしれませんが
できましたら前述2点の解決方法を知りませんでしょうか。
というか、動画変換はDirectshowでやるものではないのでしょうか?
0823デフォルトの名無しさん
2006/05/19(金) 13:56:05基本的にコーデック依存の話だけど、
エンコーダのプロパティは(UIでは)IAMCompressDialogで設定させといて
GetState / SetState で取出し、再設定が可能なことが多いですよ。
ただし GetState の cbState とかはアテにならないこともあるので注意。
DivX の場合はレジストリのどっかに書かれてるので丸ごと保存・復帰が
無難かも・・・
0824デフォルトの名無しさん
2006/05/19(金) 15:20:30レスありがとうございます。あれからいろいろしらべて、GetState/SetState
でやる方法で解決しそうな感じにはどうにかなったのですが、どうやらCodec
によってはできないこともある様子…というか使いたいCodecは非対応でした。
さらにXvidなどはプロパティも出ないし!
Icodecなどというものがよい予感ですが使い方がちんぷんかんぷんです。
動画変換の時間についてはサンプルグラバ取って圧縮するほうがいいので
しょうか。その場合コールバックをとるのがよいのですか?
0825デフォルトの名無しさん
2006/05/19(金) 16:47:46XvidはプロパティもAboutも表示できるよ。
昔AMCapを改造した時のコードからの抜粋を、以下に載せておきます。
------------------------
//xvid filter のインターフェースポインタを取得
IBaseFilter *pXvidFilter = GetCompressorByName(CLSID_VideoCompressorCategory, szName);
//↑これは自前関数
//IAMVfwCompressDialogsを取得
IAMVfwCompressDialogs *pVfwCompressDialogs;
hr = pXvidFilter->QueryInterface(IID_IAMVfwCompressDialogs, (void **)&pVfwCompressDialogs);
//各ダイアログが使用可能かチェックする方法
hr = pVfwCompressDialogs->ShowDialog(VfwCompressDialog_QueryConfig, hwnd);
hr = pVfwCompressDialogs->ShowDialog(VfwCompressDialog_QueryAbout, hwnd);
//各ダイアログを表示する方法
hr = pVfwCompressDialogs->ShowDialog(VfwCompressDialog_Config, hwnd);
hr = pVfwCompressDialogs->ShowDialog(VfwCompressDialog_About, hwnd);
0826デフォルトの名無しさん
2006/05/19(金) 17:36:39普通にグラフを作って、音声のレンダラを
入れなければ全速になると思うけど。
SetDefaultsyncSource(NULL) も必要かもしれない。
0827デフォルトの名無しさん
2006/05/19(金) 22:07:430828デフォルトの名無しさん
2006/05/21(日) 05:36:32CBaseFilter::QueryVendorInfo(LPWSTR* pVendorInfo)などが未解決になってしまいます。
XXX.obj : error LNK2001: 外部シンボル ""public: virtual long __stdcall CBaseFilter::QueryVendorInfo(wchar_t * *)" (?QueryVendorInfo@CBaseFilter@@UAGJPAPA_W@Z)" は未解決です。
これは私のプロジェクトではLPWSTR*はwchar_t*となり、strmbasd.libではLPWSTR*はunsigned short *としてバイナリ化されているためのようです。
私のプロジェクト(デバッグ用のテストプログラムもかねて作っているのでMFCのダイアログベース)です。
stdafx.hの中でLPWSTR*がwchar_t*にでもされているのでしょうか?
LPWSTRをunsigned short *に解釈されるようにするにはどうすればよいのでしょうか?
0829デフォルトの名無しさん
2006/05/21(日) 09:59:250830デフォルトの名無しさん
2006/05/21(日) 23:35:490831デフォルトの名無しさん
2006/05/22(月) 13:36:18C++クラスの状態で自分のアプリの中だけで使いたいのですが
pUnk = CMyFilter::CreateInstance(NULL, &hr);
pUnk->NonDelegatingQueryInterface(IID_IBaseFilter, (void **)&m_pFilter);
m_pGraph->AddFilter(m_pFilter);
とやって使えるには使えるのですが、
m_pFilter->Release();
delete pUnk;
としてもメモリリークしてしまいます。
AddFilterしなければOKでした。
axファイル化してCOMとして登録しないと使うことはできないのですか?
0832デフォルトの名無しさん
2006/05/22(月) 14:10:27そんなことないですよ。
0833デフォルトの名無しさん
2006/05/22(月) 14:43:57どのようにやったらよいか教えていただけませんか?
よろしくお願いします。m(_ _)m
0834デフォルトの名無しさん
2006/05/22(月) 14:46:46フィルタグラフを解放した後、自前で Release を呼んで、
デバガで中までステップインして行って開放されることを確認してみてください。
0835デフォルトの名無しさん
2006/05/22(月) 15:08:24Releaseをもうひとつ追加したところ
m_pFilter->Release()としたときに
m_pUnkの参照カウントm_cRefが0になり、いくつかのフィールドも0xfeefeefeのようになり、開放されているようです
最後にm_pUnkをdeleteするとデバッガが固まってしまいました。。
NonDelegatingQueryInterfaceを使ってIBaseFilterを得ることが間違っているのでしょうか?
もう少しがんばってみます。
0836デフォルトの名無しさん
2006/05/22(月) 15:40:10最後にm_pUnkをdeleteしているのが間違いのようでした。
参照カウントが0になった時点で自分で開放しているらしく
その状態でアプリを終了すればリークしないことがわかりました。
>>834さん、本当にありがとうございました!
0837デフォルトの名無しさん
2006/05/24(水) 03:13:14->SetWindowPosition(0,0,SCREEN_WIDTH,SCREEN_HEIGHT);//上の方で#define
->RenderFile(L"hoge");
で再生させてるんですが
親ウインドウフルスクリーン時にwmvを使った場合だけ
wmvファイル側の元サイズのまま左下にちょこんっと描画されます。
aviやmpeg1,2だとSetWindowPositionで指定した範囲にきっちり描画してくれるのですが
wmvの場合なにか指定するべきモノがあるんでしょうか?
0838デフォルトの名無しさん
2006/05/25(木) 15:12:04音声入れるとやはり等速になるんですね…
もう少し修行してきます。レスありがとうございました。
0839デフォルトの名無しさん
2006/05/25(木) 18:19:52>>826は正確には「音を鳴らす」音声のレンダラを入れると、
ということだと思う。再圧縮するだけなら全速力で動くよ。
0840デフォルトの名無しさん
2006/05/25(木) 23:33:13どうすればいいのでしょうか?
サンプルのDirectShow/Filters/Async/MEMFileを使って
MPEGやAVIは再生できたんですが…
0841デフォルトの名無しさん
2006/05/26(金) 05:29:48と適当に答えてみる
0842デフォルトの名無しさん
2006/05/27(土) 08:28:02ありがとうございます。
DirectShow/Commonを組み込めば良いという事でしょうか?
とりあえずやってみます。
0843デフォルトの名無しさん
2006/05/27(土) 10:44:420844デフォルトの名無しさん
2006/06/07(水) 18:29:300845デフォルトの名無しさん
2006/06/07(水) 22:49:19MediaPlayerでは使われるのですが、WindowsMediaPlayerで使われません。
WindowsMediaPlayerで認識させる方法をご存知のかた、いません?
ちなみに、拡張子ax形式のファイルです。
regsvr32で登録してます。
0846デフォルトの名無しさん
2006/06/07(水) 22:49:50DirectX February 2006 Redistributable for Software Developers
とかいう奴があるんですよ。「開発者向け」ってあるからSDKかな〜?って思うじゃないですか。
これをダウンロードしてみたら、いつの間にか単なるEnd User Run-timeをダウンロードさせられるんだよ。
インストーラがもっともらしく出てくるからインストールしてみるとしっかり単なるRunTimeだし。
つーか動作変わったらどうしてくれるんだ?どの辺が開発者向け?
これって詐欺じゃね?
0847デフォルトの名無しさん
2006/06/07(水) 23:28:41ヒント:MP64とWMPでは出力画面のフィルタが違う。よって、フィルタグラフも違う。カラースペース変換周りも違う。
0848デフォルトの名無しさん
2006/06/07(水) 23:33:520849デフォルトの名無しさん
2006/06/08(木) 01:51:00レス、ありがとうございます。
ということは、WMPが対応するような出力のフィルタをサポートするように、
自作フィルタのピンを設定する必要がある。
もちろん、そのピンに出力できるようなデコードを行う、
ですかね。
できればWMPがさぽーとするような出力フィルタの形式、もしくはそれを調べるのに
参考になるサイトのURLでも教えてもらえませんでしょうか?
0850847
2006/06/08(木) 03:01:34他のアプリのグラフを見る方法があったような。
詳しくはSDKミロ
http://www.google.com/search?num=50&hl=ja&q=WMP+VMR7&lr=lang_ja
0851デフォルトの名無しさん
2006/06/23(金) 02:16:500852デフォルトの名無しさん
2006/06/28(水) 10:23:16makefileしかなくなったのでしょうか?
コマンドライン上だとデバッグしづらいので
Win32の空プロジェクトを作ってソースを突っ込んで
DLLにしてビルドしてみたのですが、
エントリポイントが無いと言われ、登録できませんでした。
いったいどうすればいいんでしょうか?
プロジェクトの設定が悪いんですか?
0853デフォルトの名無しさん
2006/06/28(水) 22:46:13このスレでも既出の件だと思うのですが、(キーワード:extras)
私はDirectX 9.0 SDK Update (February 2005) Extrasを展開して
プロジェクトだけコピーして使ってますよ。
0854デフォルトの名無しさん
2006/06/28(水) 22:47:55んー defファイルっぽいな
0855デフォルトの名無しさん
2006/06/29(木) 15:44:53ありがとうございます。解決できました。
>>854
defファイルはSDKに入ってたものをそのまま使ってます。
いまさらですが、コーデック作るのにはDMO使うほうがいいんですね。
こっち使ってみます。
0856デフォルトの名無しさん
2006/06/29(木) 23:01:32デバイスからのキャプチャやビデオレンダラのように多機能な描画系は
やっぱり既存のフィルタを使うしかないんですかね?
特にデバイスキャプチャはVFWが無い今はDirectShowしかないですか?
0857デフォルトの名無しさん
2006/06/29(木) 23:16:13VMR がサポートしてる DirectX VA についてだけは、DDKでも資料がなくて
自前で実装するのは無理っぽいですが。
キャプチャフィルタも(そのハードの使い方がわかってるなら)自分でドライバなり
専用のフィルタなり書けば作れますよ。DDKにサンプルもあります。
0858デフォルトの名無しさん
2006/06/29(木) 23:27:00レンダラウインドが複数枚重なったり、ウインドをストレッチしたりした時などを考えると面倒ではないのでしょうか?
キャプチャも世の中に出ているいろいろなキャプチャデバイスが広く利用できる
というのは、ほとんどのアプリケーションにおいては必須な要件だと思うので
やっぱりDirectShowを使うのが一番手っ取り早いのですかねぇ。
0859デフォルトの名無しさん
2006/06/29(木) 23:35:32その面倒さはDirectShowの責任ではないような・・・
0860デフォルトの名無しさん
2006/06/30(金) 00:23:42そういう事まで含めるとDirectShowというソリューションがベストなのかな。
0861デフォルトの名無しさん
2006/06/30(金) 03:09:30>レンダラウインドが複数枚重なったり、ウインドをストレッチしたりした時などを考えると面倒ではないのでしょうか?
これはレンダラに限らずDirect3D とか DirectDraw 全般そういうものだし、
「自作」っていうのは自分で書くことなわけで、自分で書くのは当然と思いますが。
自分で書くのが面倒なら自作なんてせずにVMRを使えばいい。
0862デフォルトの名無しさん
2006/06/30(金) 09:24:180863デフォルトの名無しさん
2006/07/03(月) 02:14:320864デフォルトの名無しさん
2006/07/03(月) 16:23:21そのとおり、レンダラなんて簡単ですよ。
それでも自分でコード書きたくないほどの面倒くさがりなら、
「自作」は諦めたほうが良いということです。
ケーキ自作したい・・・
→簡単だよ!
→粉混ぜたり焼いたりとか面倒ですよね?
というような気分
0865デフォルトの名無しさん
2006/07/03(月) 19:45:21もう良いんですよ?
別にあなたたちに聞いても私が知っている以上のことは出てこないでしょうから。
0866デフォルトの名無しさん
2006/07/03(月) 23:25:54DMO形式で再度オーディオコーデックを書いてみました。
で、WMPは認識してくれるのですが、InternalProcessOutputが呼ばれず、
出力されません。
graphieditを使うとInternalProcessOutputは呼ばれます。
原因がまったくわからないので何かDMOフィルタを書いたことのある方
アドバイスをください。
おながいします。
0867デフォルトの名無しさん
2006/07/06(木) 14:22:57映像をMicrosoftWindowsMediaVideo9 VCMコーデックにて圧縮。その後、映像・音声をAvi Muxフィルタ
にてまとめ、ファイルに書き出すと音声が音声がコマ落ちした様になってしまいます。
※graphieditで調査してます。
不具合?VCM?スペック不足?デジタルビデオカメラ?って感じでどーにもこーにもです。
アドバイスをどうかお願いします。
また、以下では不具合現象が発生しません。
USBカメラ・ラインマイクのように映像・音声を別々のデバイスから取得する。
MicrosoftWindowsMediaVideo9 VCMの代わりにMPEG4を使用。
0868デフォルトの名無しさん
2006/07/16(日) 18:59:170869デフォルトの名無しさん
2006/07/16(日) 20:12:37食べちゃダメだ!
0870デフォルトの名無しさん
2006/07/16(日) 20:55:570871instemast
2006/07/19(水) 16:49:140872デフォルトの名無しさん
2006/07/19(水) 21:40:19つ PlayWnd
0873デフォルトの名無しさん
2006/07/21(金) 00:17:330874デフォルトの名無しさん
2006/07/22(土) 06:06:48IBasicVideo::GetCurrentImage()で取得したイメージを下のような方法でHBITMAPにしようとしているのですが、
long bufSize = 0; BYTE* pBuffer = NULL;
pBasicVideo->GetCurrentImage(&bufSize, NULL);
pBuffer = new BYTE[bufSize];
pBasicVideo->GetCurrentImage(&bufSize, (long*)pBuffer)
long width, height;
pBasicVideo->GetVideoSize(&width, &height);
BITMAPINFO bmpinfo;
memset(&bmpinfo, 0, sizeof(bmpinfo));
bmpinfo.bmiHeader.biSize = sizeof(bmpinfo);
bmpinfo.bmiHeader.biWidth = width;
bmpinfo.bmiHeader.biHeight = height;
bmpinfo.bmiHeader.biPlanes = 1;
bmpinfo.bmiHeader.biBitCount = 32;
BYTE* pImageBits = NULL; HBITMAP hBmp = NULL;
hBmp = ::CreateDIBSection(NULL, &bmpinfo, DIB_RGB_COLORS, (void**)&pImageBits, NULL, 0);
int size = ???;
memcpy(pImageBits, pBuffer, size);
sizeはどのように設定すればいいのでしょうか。
int bits = bmpinfo.bmiHeader.biWidth * bmpinfo.bmiHeader.biBitCount;
size = ((bits+((0x20-bits&(0x20-1))&(0x20-1)))>>3) * bmpinfo.bmiHeader.biHeight;
とすると、対象のファイルによってAccessViolationといわれてしまう場合があります。
size = std::min(((bits+((0x20-bits&(0x20-1))&(0x20-1)))>>3) * bmpinfo.bmiHeader.biHeight, bufSize);
とすると、AccessViolationは発生しませんが、上1/4程が真っ黒で残りの部分も白黒(グレイスケール)という画像になってしまいます。
size = bufSize;
とすると、両方の現象が起こってしまいます。
0875874
2006/07/22(土) 08:30:16他の場所で使用したIMediaSeekingをReleaseするのを忘れていたので直したところ、
1つめと2つめの方法でうまく取得できるようになりました。
謎ながらいちおうこれで取得できるようになったのですが、さらに検証したところ
どうやら常に bufSize - ((bits+((0x20-bits&(0x20-1))&(0x20-1)))>>3) * bmpinfo.bmiHeader.biHeight == 40 のようなので
次のようにするのが正しいようですね。
long bufSize = 0; BYTE* pBuffer = NULL;
pBasicVideo->GetCurrentImage(&bufSize, NULL);
pBuffer = new BYTE[bufSize];
pBasicVideo->GetCurrentImage(&bufSize, (long*)pBuffer)
BITMAPINFO bmpinfo;
memcpy(&bmpinfo, pBuffer, sizeof(BITMAPINFO));
BYTE* pImageBits = NULL; HBITMAP hBmp = NULL;
hBmp = ::CreateDIBSection(NULL, &bmpinfo, DIB_RGB_COLORS, (void**)&pImageBits, NULL, 0);
memcpy(pImageBits, pBuffer + sizeof(BITMAPINFO), bufSize - sizeof(BITMAPINFO));
0876デフォルトの名無しさん
2006/07/23(日) 16:53:08どうすれば回避できるのでしょうか?
とまるのは動画のみで、音声は再生されたままです。
IMediaControl::Stop などを呼んでもリセットされません。
また、IMediaEventEx でイベントを見ても特に何も通知されていません。
試した限りではWMV形式の動画のみで起こるようです。
0877876
2006/07/29(土) 00:32:220878デフォルトの名無しさん
2006/07/31(月) 19:54:25しかし、どうやらオーバーレイ表示されていないようです。
オーバーレイにするにはどうしたらいいのでしょうか
0879デフォルトの名無しさん
2006/08/21(月) 21:21:56なったので戻した。AmCapは動くのになあ。
0880もー
2006/08/22(火) 11:34:10VMR9 を使って、BMP画像を取得するアプリを作ろうとしてます。
あるフレーム位置の画像を取得するには、IVMRWindowlessControl::GetCurrentImage
を使って取得できますが、カレントのフレーム位置を変更して直後に GetCurrentImage をすると、
意図したフレームの画像ではなく、直前の画像が取得されてしまうことがあります。
おそらく、VMR のレンダラが間に合っていない為だと思われます。
どのようにしたら、意図したフレームのイメージを取得できるか、ご存知の方がおられましたら、
ご教授ください。
0881デフォルトの名無しさん
2006/08/22(火) 15:55:340882デフォルトの名無しさん
2006/08/22(火) 17:38:310883デフォルトの名無しさん
2006/08/22(火) 21:54:320884デフォルトの名無しさん
2006/08/22(火) 22:10:130885デフォルトの名無しさん
2006/08/22(火) 22:53:110886デフォルトの名無しさん
2006/08/22(火) 23:47:14Direct2Dにあたるのは、DirectDrawのはず。
0887デフォルトの名無しさん
2006/08/23(水) 05:59:34CComPtrとかCComQIPtrを使う人が少ないのは何故ですか?
0888デフォルトの名無しさん
2006/08/23(水) 20:49:120889デフォルトの名無しさん
2006/08/24(木) 02:01:04ただでさえ、把握しきれないほどのDirectShowという難解なものがあるのに
CComPtrやらのインターフェースにまで手が回らないというのが、風潮なのですね。
CComPtrを使うメリットはいろいろ自動でやってくれるというのもありますが、
デメリットしては熟知していないが故の予期せぬ失敗みたいなものがついてまわる。
そんな感じなんですかね。
CComPtrを使ってみようと思っているのですが、
間違っているのかと不安になりました。
決して、完全なる悪というわけでないということですよね。
CComPtr<IGraphFilter> pGF
CComPtr<IMediaControl> pMC
・・・・
pGF.CoCreateInstance(CLSID_....)
・・・
pMC = pGF
なんか、このインターフェースって
物凄いことがおこなわれているような気がします。
でも、あまり情報がないという、諸刃の剣!
0890デフォルトの名無しさん
2006/08/24(木) 20:33:250891デフォルトの名無しさん
2006/08/24(木) 22:14:44参照カウンタが上がるたびにレジストリをガーっと検索したり?
0892デフォルトの名無しさん
2006/08/25(金) 00:42:26ATLやってるやつからすれば普通のことだよ
0893デフォルトの名無しさん
2006/08/25(金) 03:08:22ATLをやってる人からすれば、普通のことなんですね。
ググった感じだとアレですが、
このような過疎スレで、いくつか反応があったので、
結構、知ってる人は多そうですね。安心しました。
CComPtr とか・・・
他人任せはいけないことですが、もっと皆にも使って欲しいと、
そのように思いました。
0894デフォルトの名無しさん
2006/08/25(金) 15:06:260895デフォルトの名無しさん
2006/08/25(金) 20:37:03もう何もかも終わりだ
0896デフォルトの名無しさん
2006/08/25(金) 22:32:140897デフォルトの名無しさん
2006/08/26(土) 01:01:500898デフォルトの名無しさん
2006/08/26(土) 11:15:100899デフォルトの名無しさん
2006/08/26(土) 13:31:230900デフォルトの名無しさん
2006/08/26(土) 23:32:050901デフォルトの名無しさん
2006/08/26(土) 23:36:35フィルタ一覧の中にあったんですけど、
{WDMストリーム標準データ タイプ ハンドラ}って何ですか?
0902デフォルトの名無しさん
2006/09/01(金) 02:40:45単に「graph=表」だと意味がさっぱり通りません。
この場合のgraphは、日本語にするとどんな意味になるんでしょうか?
0903デフォルトの名無しさん
2006/09/01(金) 03:11:38コンピュータや数学の世界では、グラフとは頂点とそれらを結ぶ線分の集合のこと。
(そもそも日常の用法でもグラフ=表じゃないと思うけど)
0904デフォルトの名無しさん
2006/09/02(土) 14:03:55CBaseRendererを継承させようとしたところ、
そんなクラスは知らないと怒られてしまった。
ヘルプを見ると、CBaseRendererはRenbase.hに宣言されているらしいけど、
そのRenbase.hがそもそも見つからない。
ということで、レンダラを自作するのに必要なものってなんでしょうか?
0905デフォルトの名無しさん
2006/09/02(土) 20:12:05最近のDirectShowだとわからんが、少なくとも俺はBaseClassesフォルダの中にあるよ。
0906デフォルトの名無しさん
2006/09/02(土) 21:55:430907デフォルトの名無しさん
2006/09/02(土) 22:11:290908デフォルトの名無しさん
2006/09/02(土) 22:44:140909デフォルトの名無しさん
2006/09/02(土) 23:25:210910デフォルトの名無しさん
2006/09/02(土) 23:27:39ライブラリ調査に時間をとられるなんて本末転倒だ
0911デフォルトの名無しさん
2006/09/02(土) 23:33:010912デフォルトの名無しさん
2006/09/03(日) 01:14:350913デフォルトの名無しさん
2006/09/03(日) 01:52:290914デフォルトの名無しさん
2006/09/21(木) 00:52:20アプリケーションからフィルタにパラメータを設定したいと思っています。
それには、IKsPropertySetを使えばよさそうなんですが、
それをフィルタに実装する方法がわかりません。
サンプルを探しても見当たらなかったので、具体的にどうしたらよいかご教示頂けないでしょうか?
0915デフォルトの名無しさん
2006/09/21(木) 01:18:050916914
2006/09/21(木) 09:37:21ある人から、フィルタをIKsPropertySetから派生させろ、
と言われたのですが、良く分かりませんでした。
↓のような感じ?
class EncFilter : public CTransformFilter, public IKsPropertySet
{
public:
DECLARE_IUNKNOWN;// CUnknownのインターフェース定義
EncFilter(TCHAR *tszName, LPUNKNOWN pUnk, HRESULT *phr);
virtual ~EncFilter();
static CUnknown *CreateInstance(LPUNKNOWN punk, HRESULT *phr);
HRESULT CheckInputType(const CMediaType *mtIn);
HRESULT CheckTransform(const CMediaType *mtIn, const CMediaType *mtOut);
HRESULT Transform(IMediaSample *pIn, IMediaSample *pOut);
HRESULT DecideBufferSize( IMemAllocator *pAlloc,ALLOCATOR_PROPERTIES *pProperties);
HRESULT GetMediaType(int iPosition, CMediaType *pMediaType);
};
0917デフォルトの名無しさん
2006/09/21(木) 13:30:15下のサイトのオリジナルフィルタを作るの
(その3)独自インターフェースを追加しVBからつかうソース ページが役に立たないかな?
ttp://www.geocities.co.jp/SiliconValley/7406/tips/dshow/
0918デフォルトの名無しさん
2006/09/21(木) 21:04:53別にIKsPropertySetじゃなくても自分で勝手に作ったインターフェースでもOK
DECLARE_INTERFACEとかいうマクロがあったような。。
0919デフォルトの名無しさん
2006/09/21(木) 21:20:08正常に表示する方法はありますか?
0920デフォルトの名無しさん
2006/10/01(日) 12:18:14にて
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpdx8_c/ds/AppDev/Capture_Intro.asp
のコードを入力して、このプログラムで作成された
Example.aviをWindowsMediaPlayerで実行したところ
「ファイルを再生できません。プレーヤーがそのファイルの種類をサポートしていないか、そのファイルの圧縮に使用した
コーデックをサポートしていない可能性があります。」
とでます。原因はなぜでしょうか?
ご指導お願いします。
0921デフォルトの名無しさん
2006/10/03(火) 19:01:04そのAVIをまずGraphEditにつっこんでみなよ
0922デフォルトの名無しさん
2006/10/05(木) 23:08:42フレームレートを変化できるようにしたいのですが、なかなか実装できずに困っています。
SampleGrabber
を使って流れてくる情報を二回に一回捨てるみたいなイメージでいるのですが
具体的なコードがさっぱりわからないのですが、誰か同様のことをやってらっしゃる方、教えていただけませんでしょうか?
0923デフォルトの名無しさん
2006/10/06(金) 00:50:35動画の使用によるよなあ。大概はヘッダ情報にフレームレートとか持ってるでしょ
その辺りもいじらないとね AVIにしろMPEGにしろ
サンプルグラバで2回に1回捨てるというけど、それは1サンプル1フレームならではの
理屈なので確認してね あとタイムスタンプも(フレーム飛ばす分)適切に変更してね
0924デフォルトの名無しさん
2006/10/06(金) 01:20:26キャプチャデバイスにはあらかじめフレームレートを設定できるが、それを動的に変えたいということかな?
AVIファイルに落とすのならサンプルグラバではなく、自作のTransformフィルタを作成するのがよいと思う。
そいつで、偶数フレームに関してはIMediaSample::SetTimeをつかって再生時間が2倍になるようにし、
奇数フレームは捨ててしまう。これでよいと思う。
グラフ構成は
[SRC]-[自作Trans]-[AVI MUX]-[FileWriter]
0925デフォルトの名無しさん
2006/10/06(金) 15:14:09たとえば未圧縮ビデオストリームの場合VIDEOINFOHEADERのAVGTIMEPERFRAMEとか。
0926デフォルトの名無しさん
2006/10/06(金) 15:17:28下のようなコードを書いたのですがファイルの保存がうまくいきません。
アドバイスお願いします。
// pCap は、前のコードのキャプチャ フィルタである。
pGraph->AddFilter(pCap, L"Video Capture");
// プレビュー。
pBuilder->RenderStream(
&PIN_CATEGORY_PREVIEW,
&MEDIATYPE_Video,
pCap,
NULL, // 圧縮フィルタなし
NULL // デフォルトのレンダラ
);
IVideoWindow *pVidWin = NULL;
HWND g_hwnd=NULL;
pGraph->QueryInterface(IID_IVideoWindow, (void **)&pVidWin);
g_hwnd=reinterpret_cast<HWND &>(panel1->Handle);
pVidWin->put_Owner((OAHWND)g_hwnd);
pVidWin->put_WindowStyle(WS_CHILD | WS_CLIPSIBLINGS);
RECT grc;
GetClientRect(g_hwnd, &grc);
pVidWin->SetWindowPosition(0, 0, grc.right, grc.bottom);
0927デフォルトの名無しさん
2006/10/06(金) 15:18:58//保存
hr = pBuilder->SetOutputFileName(
&MEDIASUBTYPE_Avi, // ターゲット ファイルの AVI を指定する。
L"d:\\Example.avi", // ファイル名。
&pMux, // Mux へのポインタを受け取る。
NULL
);// (省略可能) ファイル シンクへのポインタを受け取る。
hr = pBuilder->RenderStream(
&PIN_CATEGORY_CAPTURE, // ピン カテゴリ。
&MEDIATYPE_Video, // メディア タイプ。
pCap, // キャプチャ フィルタ。
NULL, // 中間フィルタ (省略可能)。
pMux
); // Mux フィルタまたはファイル シンク フィルタ。
pGraph->AddFilter(pMux, L"Mux");
// Mux フィルタを解放する。
//pMux->Release();
// ビデオ キャプチャ ストリームを制御する。
IMediaControl *pControl;
REFERENCE_TIME rtStart = 10000000, rtStop = 50000000;
const WORD wStartCookie = 1, wStopCookie = 2; // 任意の値。
hr = pBuilder->ControlStream(
&PIN_CATEGORY_CAPTURE, // ピン カテゴリ。
&MEDIATYPE_Video, // メディア タイプ。
pCap, // キャプチャ フィルタ。
&rtStart, &rtStop, // 開始タイムおよび終了タイム。
wStartCookie, wStopCookie // 開始イベントおよび終了イベントの値。
);
0928デフォルトの名無しさん
2006/10/06(金) 15:24:55Mux を AddFilter してから RenderStream するように。
0929デフォルトの名無しさん
2006/10/06(金) 16:35:38同じようにエラーがでます。
ファイルサイズは0でないので何かはできているようなのです。
引き続きアドバイスお願いします。
//保存
hr = pBuilder->SetOutputFileName(
&MEDIASUBTYPE_Avi, // ターゲット ファイルの AVI を指定する。
L"d:\\Example.avi", // ファイル名。
&pMux, // Mux へのポインタを受け取る。
NULL
);// (省略可能) ファイル シンクへのポインタを受け取る。
pGraph->AddFilter(pMux, L"Mux");
hr = pBuilder->RenderStream(
&PIN_CATEGORY_CAPTURE, // ピン カテゴリ。
&MEDIATYPE_Video, // メディア タイプ。
pCap, // キャプチャ フィルタ。
NULL, // 中間フィルタ (省略可能)。
pMux
); // Mux フィルタまたはファイル シンク フィルタ。
// ビデオ キャプチャ ストリームを制御する。
IMediaControl *pControl;
0930デフォルトの名無しさん
2006/10/06(金) 17:35:40AMCAPみたいな、ちゃんと動くサンプルのソース眺めたほうが早いんじゃない?
0931デフォルトの名無しさん
2006/10/06(金) 22:46:59とりあえずココとか参考にすると良いかも
ttp://vision.kuee.kyoto-u.ac.jp/~hiroaki/firewire/directshow.html
0932デフォルトの名無しさん
2006/10/07(土) 22:13:10小出しにされるとイライラする
0933デフォルトの名無しさん
2006/10/10(火) 22:14:100934デフォルトの名無しさん
2006/10/11(水) 19:14:02ご存知の方いらっしゃれば教えて下さい。
(デフォルトフレームの設定はできるようですが実質役に立ちません)
0935デフォルトの名無しさん
2006/10/20(金) 03:46:44見つけられなかったです。
設定方法をご存知の方、教えてください。
0936デフォルトの名無しさん
2006/10/20(金) 10:53:290937デフォルトの名無しさん
2006/10/22(日) 06:38:39プラットフォームSDKをインストールしてビルドしてみたらstreams.hが見つからないと怒られてしまいました。
もしかしてヘッダファイルもAPIもBaseClassesも変更されちゃったの?
0938デフォルトの名無しさん
2006/10/22(日) 09:09:27サンプルはサンプルに
0939デフォルトの名無しさん
2006/10/22(日) 16:55:060940Direct将
2006/10/27(金) 01:11:01作成したフィルタ(*.ax)を登録するにはどうしたらよいでしょうか。
PCの場合は、
regsvr32.exe *.ax
として、フィルタを登録できたのですが、
Windows Mobile 5.0 上では、このようなコマンドはないのでしょうか。
どうかご教示お願い致します。
Visual Studio 2005を使って、フィルタを作成しています。
(PC版はVC++で作っていました。)
0941デフォルトの名無しさん
2006/10/27(金) 10:01:210942Direct将
2006/10/27(金) 21:48:48Windows Mobile 5.0用のregsvrce.exeが見つからなかったので、
C:\Program Files\Microsoft eMbedded C++ 4.0\EVC\WCE400\TARGET\ARMV4I
からregsvrce.exeを実機にコピーし、フィルタの登録を試みましたが、
「Loadlibrary(""\Windows\フィルタ名.ax"")failed.
GetLastError returns 7e」
というエラーが出て登録できませんでした。
0943デフォルトの名無しさん
2006/10/27(金) 22:30:06プロジェクトのプロパティ→構成プロパティ→配置→サーバー側のアクション→出力の登録→はい
これでいけるはず。
0944デフォルトの名無しさん
2006/10/28(土) 15:33:24再生中(コールバックが繰り返し呼ばれている状態)
Ctrl+Alt+Deleteまたは、Winキー+'L'によりデスクトップ画面から
ロック画面またはセキュリティ画面に切り替えて、普通にデスクトップに
復帰するとコールバックが停止してしまうんだけど、なんで??
(ちなみにこのとき、IMediaControlのGetState()はRUN、IBaseFilterのGetStateはPAUSEとずれてた)
デスクトップから画面切り替えなきゃまったく問題ないです。
0945デフォルトの名無しさん
2006/10/28(土) 16:26:160946デフォルトの名無しさん
2006/10/29(日) 03:22:10デバッグするとソースフィルタからは正しくデータを渡しているように見えます。
どこかのフィルタのバッファがクリアされてないのでしょうか?
対策方法はあるのでしょうか?
0947デフォルトの名無しさん
2006/10/29(日) 03:26:42ネットワークのストリーミング再生ということもあり、シーク時にバッファリングの時間がかかる事があります。
その時にIMediaSeeking::GetCurrentPosition()すると、勝手に無音状態のまま時間が進んでしまいます。
バッファリングが完了して音が出始めると正しく同期しようとします。
再生開始まで時間がかかる場合にGetCurrentPositionの値が進まないようにはできないのでしょうか?
0948デフォルトの名無しさん
2006/10/29(日) 09:24:58パーサフィルタが時間が来たと思えば、データが無くてもメディアサンプルをレンダラに渡すから時間が進むのだろう。
パーサフィルタも開発しているなら何とかできるのかもしれない。
そうでなければプッシュ型にするのがよいと思う。
0949デフォルトの名無しさん
2006/10/29(日) 15:45:47のどれかを設定する方法を教えてください。
0950デフォルトの名無しさん
2006/10/29(日) 16:21:150951947
2006/10/29(日) 19:54:46バッファリングが必要な場合は一般的にはプッシュ型にするのでしょうか?
プッシュ型だとソースのコーデックが分かってないとSeekの解決(time → byte)などができなくないですか?
0952デフォルトの名無しさん
2006/10/29(日) 21:11:13ソースフィルタは何をベースに作ってるの?CSource ? IFileSourceFilter?
0953947
2006/10/29(日) 21:12:16IFileSourceFilterです。ネットワーク越しにファイルを再生します。
0954デフォルトの名無しさん
2006/10/29(日) 21:27:07そこでバッファが完了するまでブロックさせればよいのでは
0955947
2006/10/29(日) 21:41:01WaitForNextはよくわかってないのですが、
SyncReadされる場合は無意味ではないでしょうか?
0956デフォルトの名無しさん
2006/10/29(日) 21:51:240957947
2006/10/29(日) 21:57:16だという理解なんですが。。ありえないでしょうか?
0958デフォルトの名無しさん
2006/10/29(日) 22:02:420959947
2006/10/29(日) 22:03:55それでやってみます。
ありがとうございました。
0960デフォルトの名無しさん
2006/10/30(月) 00:35:46使ってないソフトの場合は、特定のコーデックを直に使うとか、
自前でファイル読んだりしてるのかな?
0961デフォルトの名無しさん
2006/10/30(月) 20:44:35基準クロックよりも前のタイムスタンプを持ったサンプルが届くと
クロックに追いつくまで基準クロックが止まるけど、そーいう話の
ことをしてるの?
あと、上はエンドタイムを持たないオーディオサンプルの場合で、
エンドタイムも持ってる場合は、基準クロックは止まらずに、
基準クロックに追いつくまでオーディオサンプルは捨てられて
いくけど。
これは MS の標準オーディオレンダラーの挙動なんで、カスタム
レンダラーつかってる場合はまた別ね。
0962947
2006/10/30(月) 23:20:06まさしくそういう話です。
MSの標準レンダラーはそういう仕様なのですね。
結局根本的にはレンダラを自作する必要があるのですね。
勉強になりました。
0963デフォルトの名無しさん
2006/10/31(火) 01:10:54オーディオメディアサンプルに与えられたタイムスタンプが、現在の時間になるんだと思ってた。
たとえば完全に連続したPCMデータを、タイムスタンプだけイタズラして、あるときゼロにして渡すと、
オーディオの再生は問題ないが、フィルタグラフ全体の時刻がゼロに戻ってしまうため、
ビデオのフレームはそのフレームのタイムスタンプになるまで待つため、ビデオがとまって見える
と理解してたんだけど。
0964デフォルトの名無しさん
2006/11/01(水) 14:03:43教えてください。数行ならここで教えていただけると助かるのですが・・。
0965デフォルトの名無しさん
2006/11/01(水) 20:22:09これでいいのかな?
つ[ttp://mobiquitous.com/programming/usbcamera.html]
おいらはVBでカメラの色調などを直接設定したいです。
教えてください。
0966デフォルトの名無しさん
2006/11/01(水) 20:55:000967デフォルトの名無しさん
2006/11/02(木) 03:06:01http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/directx9_c/directx/htm/displayingafilterspropertypages.asp
これかな?同じ要領でピンのプロパティも取得出来るはず。
0968デフォルトの名無しさん
2006/11/02(木) 20:31:09僕自身やり始めて一週間程度なのでインスコ〜グラフエディット〜プロジェクトのつくりかた〜DLL作成
までしかわからんが
0969デフォルトの名無しさん
2006/11/02(木) 22:29:21おれおれ
0970デフォルトの名無しさん
2006/11/02(木) 22:39:01おれおれ
といいたいけど、Win2K + VC6でライブラリのビルド、挫折したからな…
0971デフォルトの名無しさん
2006/11/02(木) 22:55:23実際にこの辺のちゃんとしたやり方が知りたい。
自分のわかったとこまで公開してツッコミもらいたい
VC.NET2003でaxファイルを作るのにはなんのプロジェクトを新規作成するのがただしいの?
0972971
2006/11/02(木) 23:05:25プラットフォームSDKの場合、基底クラスのフォルダにプロジェクトファイルがない。
で、MakeFileをつかってビルドしてみたがVC6じゃあリンク通らない関数があった。
えぇきっぱり諦めましたさVC6を…。
0973デフォルトの名無しさん
2006/11/02(木) 23:16:18新規作成しなくてもフィルタのサンプルをパクってくればいいんじゃね?
0975デフォルトの名無しさん
2006/11/03(金) 12:10:470976デフォルトの名無しさん
2006/11/03(金) 15:16:44#include <dshow.h>
#pragma comment(lib, "strmbase.lib")
と
Platform SDKの
audevcod.h
DShow.h
specstrings.h
strsafe.h
が有ればビルド出来るはず。
インクルードパスに直接Platform SDK指定しても良いけど
俺は上記ファイルだけ抽出したフォルダをパス指定した。
Platform SDK
http://www.microsoft.com/downloads/details.aspx?familyid=D8EECD75-1FC4-49E5-BC66-9DA2B03D9B92&displaylang=en
(ページ下にWeb Installも有る)
0977976
2006/11/03(金) 15:19:170978デフォルトの名無しさん
2006/11/03(金) 20:49:56GJ
じゃこれもまとめとこ
0979デフォルトの名無しさん
2006/11/03(金) 22:47:31Win2K + VC6でstrmbase.libをビルドできなくて挫折したんだが、
なくてもできるの?
0980デフォルトの名無しさん
2006/11/03(金) 23:13:38DirectX8.1SDKでつくればおkwwwww
ってそれじゃあ無意味だもんな
0981976
2006/11/03(金) 23:23:51C:\Program Files\Microsoft Visual Studio\VC98\Lib\strmbase.lib
に置いてあったんだが・・・。
普通は無いの?
0982976
2006/11/03(金) 23:31:36VC6でビルドしたやつは↓しか使ってない。
IGraphBuilder
IMediaControl
IVideoWindow
IMediaEvent
IMediaSeeking
0983デフォルトの名無しさん
2006/11/03(金) 23:48:53僕みたいにビルドがとおらないんだろう。
まとめサイトとか作って
strmbase.lib とかそれぞれのSDKバージョンでビルド
されたものがアップされてたほうがよいね
0984デフォルトの名無しさん
2006/11/04(土) 16:29:010985デフォルトの名無しさん
2006/11/04(土) 16:45:16strmbase.libはstrmiids.libにほんの数個のインターフェイスを追加しただけ。
strmbase.libをビルドするとき、VC6のstrmiids.libをリンクすれば
VC6でリンクするとき「デバッグ情報が壊れています」エラーは出なくなる。
しかしVC6のstrmiids.libには新しいDirectXの
インターフェイスが入ってないから意味が無い。
VC6でビルドしたstrmiids.libが無いかぎり、
どうstrmbase.libビルドしても
デバッグ版strmbase.lib(の中のstrmiids.lib)をリンク出来ない。
0986デフォルトの名無しさん
2006/11/04(土) 19:07:47VC6でDirectShow使うソースでリンクエラー出た人、エラーでたインターフェイス教えてくれない?
リンク出来るか試してみたい。
※ DirectX 9.0 SDK (October 2004)
http://download.microsoft.com/download/1/5/1/1513e3ec-f6e2-4fb1-bf27-7c8983b3bf91/dxsdk_oct2004.exe
0987デフォルトの名無しさん
2006/11/04(土) 19:17:22了解。
僕のやった環境はPlatformSDKの最新版の基底クラスを
VC6でビルドした際に出たんだ。
しょうがないので基底クラスは別環境で作って自作ソースを
ビルドした際に出たので、今度同じ環境をつくって試してみるよ。
0988デフォルトの名無しさん
2006/11/04(土) 21:03:43PlatformSDKに移ったDshowの何が問題になってるの?
0989デフォルトの名無しさん
2006/11/04(土) 21:10:290990デフォルトの名無しさん
2006/11/04(土) 21:42:180991987
2006/11/04(土) 21:46:44であっても公開するために纏めてる
さっきUSBカメラ買ってきた。画質悪い(´・ω・`)
0992デフォルトの名無しさん
2006/11/05(日) 01:59:29988への回答かと思ってちゃんと読んだ瞬間ガム吹いてモニタに付いたw
0993デフォルトの名無しさん
2006/11/06(月) 20:04:360994デフォルトの名無しさん
2006/11/06(月) 21:46:22ここを参考にVMR9を使ってDirect3Dでの表示を行おうとしているのですが
CAllocator::PresentImageが呼ばれるタイミングがよくわかりません。
directshowが勝手に呼び出してくれるのでしょうか?
ちなみにサンプルブラウザではVMR9Allocatorというやつです。
0995デフォルトの名無しさん
2006/11/08(水) 00:26:37http://pc8.2ch.net/test/read.cgi/tech/1162913156/
0996デフォルトの名無しさん
2006/11/08(水) 01:03:540997デフォルトの名無しさん
2006/11/08(水) 02:21:140998デフォルトの名無しさん
2006/11/08(水) 05:31:290999デフォルトの名無しさん
2006/11/08(水) 05:32:291000デフォルトの名無しさん
2006/11/08(水) 05:33:1310011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。