DirectShowと戦うスレ Part 2
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/11/08(水) 00:25:56http://pc8.2ch.net/test/read.cgi/tech/1026666092/
0360デフォルトの名無しさん
2007/03/27(火) 01:30:21人に使ってもらうには汚すぎなんで
(改造しながら他のフィルタのデバッグしてるんで・・・)
週末にでも機能を絞り込んで
見やすくしてみます。
終わったら、
h ttp://ragesakai.web.fc2.com/
にWebpageもってるんであげてみます。
0361デフォルトの名無しさん
2007/03/27(火) 11:29:140362デフォルトの名無しさん
2007/03/28(水) 07:41:45メディアタイプ一覧がわかるサイトさがさなきゃ
接続メディアタイプチェックフィルタでは、最悪知らないGUIDが出てきたら
そのまま貼っとくか…
0363デフォルトの名無しさん
2007/03/28(水) 21:21:390364デフォルトの名無しさん
2007/03/28(水) 21:41:530365デフォルトの名無しさん
2007/03/30(金) 01:03:46元AVI(640,480)でRECT(120,120,440,320)の範囲だけきりだして320x240のAVIにしたり
範囲を拡大して640x480にしたいんですが、サンプルグラバのコールバックつくって
中で処理しなきゃダメですかね?
0366デフォルトの名無しさん
2007/03/30(金) 08:24:20自分なら映像切り抜きフィルタを作って解決するけどフィルタグラフ側でもできるよ。
フィルタグラフ側でAVIの切り抜きを行った時のサンプルグラバの制御は凄く大変そう…ってか自分には無理なレベル
0367デフォルトの名無しさん
2007/03/30(金) 08:30:25グラバで取得した画像は元AVIと同じサイズなんね。なら出来…るかな?
だけどやっぱり、「切り抜き拡大縮小フィルタ」作るほうが簡単なのは間違いない。
0368デフォルトの名無しさん
2007/03/30(金) 20:49:08んで後ろにAviMux、FileWritterとつなげればよかよ。
0369365
2007/03/30(金) 21:25:10TransformFilterって、ベースクラスのライブラリから自分で作るフィルタですか?
最初から用意されててAddFilterで追加できるなら使ってみたいかも。
0370デフォルトの名無しさん
2007/03/30(金) 21:38:03んだよ自分で作るんだよ Transformメソッドで好きにいじってよし
んで後ろにAviMuxが繋がる時にね、ビデオの縦横サイズはオリジナルサイズじゃなくて
自分が変更するサイズを提示するったい Muxは提示されたサイズをヘッダ情報に
書いてた気がするばってん
0371デフォルトの名無しさん
2007/03/30(金) 22:23:31DirectShowの編集サービスっての使えますか?
0372デフォルトの名無しさん
2007/03/30(金) 22:37:06ちょっくらトランスフォームフィルタつくってみます。
コンプレッサの前にトランスフォームでサイズ変える処理いれてみます。
CreateDIBSectionでHBITMAPつくってストレッチビルドして試してみます。
0373デフォルトの名無しさん
2007/03/31(土) 00:03:12作り方は大正解◎。
コツを少々・・・
流す映像のサイズをかえちゃうと
設計が大変になるから
「切り出し」→「拡大」でもとのBMPサイズに合わせるようにすると
いいよ。
それとストレッチベルトを「CTransform::Transform」内でつかうんだけど
ストレッチベルトの関数1つで全体のCPU負荷が15%ぐらい上がってしまう。
もし気になるなら、画像処理ライブラリで置き換えするとよいよ
俺ここんとこ九州男児さんと考え方が似てる。。同じような職種&年齢なんだろうな。
0374デフォルトの名無しさん
2007/03/31(土) 00:27:00一応つっこんでおくけど、「ブリット」ですたい。
StretchBlt ストレッチブリット BitBlt ビットブリット
0375デフォルトの名無しさん
2007/03/31(土) 00:37:23ほへ〜。初めて知りました。
呼び方は「Blt」⇒「ベルト」と呼んでました。。
言い訳しまくると、自分組み込み系出身でwinアプリ作るの今年から初めた門で。
WinAPIを知らなさすぎる。。この機会に他の呼び方も覚えよう
今後直しますありり^^
そして、メディアタイプチェッカーも明日だらだらし終わったら修正に取り掛かるっす
0376デフォルトの名無しさん
2007/03/31(土) 00:42:28http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200508/05080002.txt
0377デフォルトの名無しさん
2007/03/31(土) 00:46:01なんか、映像のサイズ変えて保存したいって突然いわれたんで
変更しなきゃいかんのです。
切り出して切り出したサイズで保存なんですよ。
切り出して元の再隋拡大だったらサンプルグラバでおわったのに。
サンプルグラバでCreateDIBSectionかけてmediasampleからバッファとって
データ加工して代入。ここまでは出来てOKだった・・・
ストレッチビルトして正しく終わったのに・・orz...
0378デフォルトの名無しさん
2007/03/31(土) 01:09:59DirectX8からPresent()になったのはホント良かったと思うよ。
0379デフォルトの名無しさん
2007/03/31(土) 01:26:56ごめん。。
内容的には以前自分が作った「解像度リサイズフィルタ」
これの仕組みがまんまメインになってくるんだが
教えてあげられない。。
自分で調べてくれ。
0380デフォルトの名無しさん
2007/03/31(土) 01:57:15できたから問題無し。
0381デフォルトの名無しさん
2007/03/31(土) 02:28:31切り出しと拡大縮小ぐらい用意されてるような気がして探し回ってた時期があった。
0382デフォルトの名無しさん
2007/03/31(土) 16:37:52拡大、縮小にも色々なアルゴリズムがあるったい 自分の好きなようにつくるのが一番よかよ
どうせつくるならそのへんプロパティページで色々指定できるとうれしいね
0383デフォルトの名無しさん
2007/03/31(土) 22:24:58自分で調べれって話なら書く必要ないじゃん。
教えて上げられないレス増えるからネガティブさん消えてくれwwwwwwwwwww
0384デフォルトの名無しさん
2007/03/31(土) 23:03:57DirectShowやってる人の総人口が少ない。
そしてそれが理由なのかここのスレの回答側に立つ人も少ない。
このスレで役に立てばと思って結構回答をしているが、
何が難しいかわかるけど教えてあげられない状況だったので、
放置されるよりはいいと思って書き込みました。
(本スレ後半でageてるやつはほとんど自分)
>>383さんもそんなこと書き込んでないで回答側に回ってくれ
0385デフォルトの名無しさん
2007/04/01(日) 00:08:34その昔サンプルグラバを知らなかった自分は自前のフィルタ作っちゃったし、
話の流れで知ることもそれなりに多い・・・。かな?
0386デフォルトの名無しさん
2007/04/01(日) 03:12:34uuid.hではすべてのメディアタイプは乗ってない。
「MEDIASUBTYPE_I420」
が入っていなかった。
0387C++
2007/04/01(日) 08:46:540388デフォルトの名無しさん
2007/04/01(日) 13:44:39まずはDirectX SDKのindlude、DirectShowのBaseclasses ここのソースで定義されてるものを
押さえておけば良いんじゃないの?
極端な話、guidgen使って自分で独自のMediaType作れちゃうわけだし。
0389デフォルトの名無しさん
2007/04/01(日) 22:43:15DirectShowのオフィシャルな定義としてはMEDIASUBTYPE_IYUVじゃないのか。
0390デフォルトの名無しさん
2007/04/01(日) 23:22:10普通にMEDIASUBTYPE_I420という定義があるものと思い込み、
いざ実装してみたらものの見事に未定義だった、ということがあったなあ。
IYUVとI420は同じフォーマットのようなので、
私もMEDIASUBTYPE_IYUVを使ってますが・・・。
0391デフォルトの名無しさん
2007/04/02(月) 09:52:04やれやれ
0392デフォルトの名無しさん
2007/04/02(月) 11:49:43こういう動画処理インターフェースってプログラムとして人気ないのかな?
0393デフォルトの名無しさん
2007/04/02(月) 13:56:56漏れにはACLの方がワケワカメだよ。
0394デフォルトの名無しさん
2007/04/02(月) 14:27:52という事情もあるのではないか。
後は仕事になるかどうかとか。
0395デフォルトの名無しさん
2007/04/03(火) 20:48:20+ 三ミ |∧η∧
/⌒\ (,,・Д・)<ただいまんこ〜オレも便乗して質問だぞ。
+ 川川 l l/つ つ━☆ トランスフォーマーとかいうのをつかって
〜( / CTransformFilter::DecideBufferSizeここでメモリを確保する所までたどり着いたぞ。
(/"U 俺も拡大縮小をやりたくて書き込みするぞ。オマンコクロスだぞ。
C言語は7年目だぞ。切実だぞ。
0396デフォルトの名無しさん
2007/04/03(火) 22:27:40俺は3年目だけど苦労したができたぞ。
で、何がしりたいんだぼけぇ
0397デフォルトの名無しさん
2007/04/03(火) 22:32:34【いい例】
ぽまえら!おしえやがれぃい。
QVGAをVGAにリサイズしようと思うんだがDecideBufferSizeというめそで
115200byteしかとれねええんじゃUZEEEEEE!!
これを230400byteとれるようにする方法を教えやがれ
【悪い例】
いつも大変このスレッドを読ませていただき参考にさせてもらっております。
今回拡大縮小をやりたいのですがどのようにしたらいいかわかりません。
C++、MFCはできます。
また自分は過去XXXということをやっておりました。
大変恐縮ですがなにとぞご指導をよろしくお願いいたします
0398デフォルトの名無しさん
2007/04/03(火) 22:37:54×115200
○230400
×230400
○460800
用は質問の観点を絞り込んでくるかどうかの差だからな
0399デフォルトの名無しさん
2007/04/03(火) 23:59:22★ ∧η∧
\_(,,・Д・)<>>396 ポンドルウォーリアを特殊召喚する方法がしりたいぞ。
ヽ |フ ナニがしたいのか忘れたぞ!
/_ _| AVIを半分の解像度にして保存したいんだぞ!これが目的だぞ。
逆もあるぞ。オパンツ丸見え!
>>397 うんこちんこまんこ?キョカカカ!あばーあばばー!
参考にさせてもらったぞ。面倒だから、ゴゾブログで質問に答えてくれればそれでいいぞ。
オマンコクロッサー!
0400デフォルトの名無しさん
2007/04/04(水) 00:59:120401デフォルトの名無しさん
2007/04/04(水) 01:28:29作ったぞ
実は裏で機能をいろいろ盛り込んでみたが、
普通の使い方だけしてくれ。
http://zetubou.mine.nu/itoshiki/upload.cgi
っ【 [zetubou6474.bin] メディアチェックフィルタ 96 application/octet-stream 2007年04/04(水)01:25
これをリネーム
⇒0Mediachk.ax
それをregsvr32で登録
0402デフォルトの名無しさん
2007/04/04(水) 01:52:350403デフォルトの名無しさん
2007/04/04(水) 08:59:19写真と引き換えならオニーサンがAVI半分にするフィルタ作ろう。(ただしソースはやれないがな)
0404デフォルトの名無しさん
2007/04/04(水) 14:50:040405デフォルトの名無しさん
2007/04/04(水) 16:48:36このムーンライトフィルタってさ、カメラがI420の時は接続すらしてくれないんだね。
解像度もメディアタイプも変更してくれるいいフィルタだと思ったんだけど残念
0407デフォルトの名無しさん
2007/04/04(水) 18:23:20です。
ちゃんと動きましたか?
バグを見つけたら速やかに報告よろ。
時間見つけ次第ちゃんとウェブページに反映しとくです。
感謝されるのに生き甲斐を感じた。ありり
0408デフォルトの名無しさん
2007/04/04(水) 19:27:31行うためGetCurrentSample()でサンプルを得ています。
サンプルの取得は成功しているのですが、このあとに再生するとDoRenderSample()が
呼ばれなくなって固まってしまいます。
どうしてでしょうか?
0409デフォルトの名無しさん
2007/04/04(水) 20:04:25Releaseし忘れっぽい
0410デフォルトの名無しさん
2007/04/04(水) 21:07:23★ ∧η∧
\_(,,・Д・)<ただいまんこ〜拡大縮小できたぞ。BokkingFilterの完成だぞ。
ヽ |フ ビデオのサイズが変わらなかったのはフィルタ接続後にサイズ変えてたからだぞ。
/_ _|
CheckTransformでサイズを変更したぞ。
変更したサイズからRGB24で必要なバッファサイズを計算して保存だぞ。
ストレエッチDIBitmapだぞ。それに対してソースからストレッチDIBitsして
完成したぞ。
そして完成した後に次の問題が出たぞ。
時間指定して3分の動画で1分目から2分目を抽出したいんだが
ControlStreamにS_OK帰ってきてもダメポだぞ。
AVI再圧縮で時間指定して抜き出すテクを知ってたら教えて欲しいぞ。オマンコクロスだぞ。切実だぞ。
0411デフォルトの名無しさん
2007/04/04(水) 21:12:04★ ∧η∧
\_(,,・Д・)<あと、AVI MuxフィルタをキャプチャグラバからFindInterフェラして
ヽ |フ IAMStreamControlを生み出してStartAtとStopAtする方法を作ったんだが
/_ _| ム圧縮AVIなら何とか成功してWMVとかコーデック使うと画像が表示されんぞ。
あと、保存してない間も無駄に待たされて酷い目にあったぞ。
誰かオレがナニをすべきか教えて欲しいぞ。
0412デフォルトの名無しさん
2007/04/04(水) 21:36:48⊂⊃
★ ∧η∧
\_(,,・Д・)<キャプチャビルダのコントロールストリームはこんな具合になってるぞ。
ヽ |フ オマンコクロスだぞ。ソースを持って変えれないので具体的に説明できんぞ。
/_ _|
0413408
2007/04/04(水) 22:46:10まさにそれでした。SDKのヘルプに書いてありましたね
0414デフォルトの名無しさん
2007/04/04(水) 23:23:04素直にこれ使えば?
http://www.microsoft.com/japan/msdn/directx/techart/cplusvbappdevs.aspx
http://www.microsoft.com/japan/msdn/directx/techart/wm_des.aspx
0415414
2007/04/04(水) 23:23:49http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpdx8_c/ds/des/Oview/whatisDES.asp
0416デフォルトの名無しさん
2007/04/04(水) 23:35:12★ ∧η∧
\_(,,・Д・)<>>415 それも考えたんだぞ。大人の都合ってヤツでダメなんだぞ。
ヽ |フ くやしいぞ。オマンコクロスファイヤーハリケーンだぞ。
/_ _| 明日、ためしに作ってみるぞ。
0417デフォルトの名無しさん
2007/04/04(水) 23:45:110418359
2007/04/04(水) 23:57:28今のところ問題なさそうですよ。
ただ、スレの流れを見ると私以外で使ってみた人いないのかな?w
もう少し使ってみて気がついたことがあったら報告しますね。
0419デフォルトの名無しさん
2007/04/05(木) 00:03:51>私以外使ってる人いない…
(´・ω・`)ショボーン
0420デフォルトの名無しさん
2007/04/05(木) 21:34:17あと、××の製品かうと着いてくるフィルタは…とか語ろう
0421デフォルトの名無しさん
2007/04/06(金) 11:53:29・・・とはいえ、思いっきり過疎ってるスレだし>>419のニーズには合わんかな。
ところで質問です。
AddSourceFilterで追加したファイルソースの
出力ピンのメディアタイプを指定する方法はないでしょうか?
あるファイルを指定したとき、ただRender()しただけでは期待しているフィルタに
繋がらない(ファイルソースのメディアタイプがGUID_NULLになっている)ので
強制的に指定してみたいのですが・・・。
0422デフォルトの名無しさん
2007/04/06(金) 12:41:37質問は>>419に聞いてるのかな?
だったら応えます。
上流フィルタがカメラとかの入力デバイスの場合は「フィルタのピンプロパティ」から出力タイプを変更できるものがほとんどです。
仮に「動画」などのファイルであれば変換フィルタを噛ます事で変更は出来ますが新たに付けてやることは出来ません。
新規にフィルタを作成すればメディアタイプを付加しる物を作れるよ。
他の方法はわかりません
0423デフォルトの名無しさん
2007/04/06(金) 13:13:09> >>421=>>359さん??
うわー、なんで分かるの?w
> 新規にフィルタを作成すればメディアタイプを付加しる物を作れるよ。
> 他の方法はわかりません
やっぱりそれしかなさそうですね。
AsyncRdrサンプル辺りをベースに1つ作ってみます。
0424デフォルトの名無しさん
2007/04/07(土) 01:07:30★ ∧η∧
\_(,,・Д・)<無圧縮タイプのAVIなら時間切り出しできたぞ。
ヽ |フ ただ、無駄に時間がかかるぞ。切り出すまでフィルタにデータが流れて処理してるんだぞ。
/_ _| ポンドルウォーリア特殊召喚だぞ!ゴルァ!
0425デフォルトの名無しさん
2007/04/08(日) 10:32:36>速くなるらしい。なんかPresent(?)の戻りが早くなるとか言ってた。
これ本当?
0426デフォルトの名無しさん
2007/04/08(日) 11:42:57画面描写しないぶんタイムスタンプに忠実になるだけかと。。
>>424の話とは全然違う話
0427デフォルトの名無しさん
2007/04/08(日) 17:03:02プリロールかな?としても意味通じないし…
予測ツカナス
0428デフォルトの名無しさん
2007/04/08(日) 17:45:380429デフォルトの名無しさん
2007/04/09(月) 21:41:47プログラム動作としては、3つのmp3ファイルをタイマーで順繰りに再生するだけです。※1
この中でソースフィルタを変更してグラフを再構成する部分で分からない点があります。
流れ
1.新しいソースフィルタをグラフに追加する。
2.古いソースフィルタをグラフから削除する。
3.新しいソースフィルタの出力ピンからRenderする。
2の部分の詳細は以下のようになっています。
A.グラフ内のフィルタを列挙する。
B.列挙された全フィルタについて
a.一旦グラフから削除する
b.古いソースフィルタでなければグラフに追加する
疑問点
b.の部分がある意味がわかりません。自分としては、グラフ内の全フィルタを削除して、新しい
ソースフィルタを追加して、Renderすれば簡単に思えるんですが...
どうかよろしくお願いします。
※1 ソースはSDK_Path\Samples\C++\DirectShow\Players\BGMusicです。
0430デフォルトの名無しさん
2007/04/09(月) 22:16:140431デフォルトの名無しさん
2007/04/09(月) 23:29:52Render は重いから。
0432デフォルトの名無しさん
2007/04/10(火) 00:46:05★ ∧η∧
\_(,,・Д・)<>>429 サウンドってのは、レンドルァすると全部のcodecを試すんだぞ。
ヽ |フ だから、全て消して再構築すると連続再生とかできんぞ。
/_ _| アイマスの魔法をかけて!から、とかちつくちての連続技の間に途切れるって事だぞ。
0433デフォルトの名無しさん
2007/04/10(火) 01:13:25やべぇ見直した。。
0434デフォルトの名無しさん
2007/04/10(火) 01:55:46なるほど、それで以前使ったフィルタは残してたんですねφ
ところでその時、つながっていないフィルタがグラフ上に散在している状態ですよね。
その状態でRenderしたら、全Codecを試さず、散在しているフィルタを繋げてくれるんですか?
それともRenderを使わず、ピンを繋ぐ方法が別にあるのでしょうか?
この板のレベルに達するまで勉強して、出直してきます。(時間かかりそう...)
0435デフォルトの名無しさん
2007/04/10(火) 07:21:49★ ∧η∧
\_(,,・Д・)<>>434 朝勃ち中だが答えるぞ。
ヽ |フ レンダーすっと、フィルタが追加されている物から試すんだぞ。
/_ _| そのため、レンダーする前にvmr9のフィルタとかを入れておくとただのビデオレンダーじゃなくなったりするぞ。
だから、先に自分で作ったフィルタを入れておくと正しく繋がったりするぞ。
もちろん、Renderを使わずにグラフビルダのほうでConnectすることができるぞ。
IPinってのをフィルタから抜き出して接続できるみたいなんだぞ。
使った事無いからうまんちんまんだぞ。
0436デフォルトの名無しさん
2007/04/10(火) 07:39:07★ ∧η∧
\_(,,・Д・)<なんか、間違ってるかもしれんが許してほしいマンコ!んじゃ為替予想書いてくるぞ。
ヽ |フ
/_ _|
0437デフォルトの名無しさん
2007/04/10(火) 12:02:08今、DirectShowでUSBカメラからサンプルグラバでBMPをキャプチャするプログラムを作っています。
コールバックを使用してキャプチャをしようとしているのですが、
SetOneShotを使って1フレームだけキャプチャすることは出来ないのでしょうか?
ためしにSetOneShot(TRUE)としてみても、コールバックされ続けてしまいます。
0438デフォルトの名無しさん
2007/04/10(火) 17:56:39フィルタのGetMediaTypeでは、ピンによって2通りの設定が必要と思っています。
(オーディオの方の出力ピンからGetMediaTypeが呼ばれた場合はオーディオの値をセット、
ビデオの出力ピンからGetMediaTypeが呼ばれた場合はビデオの値をセットというように。)
しかし、GetMediaTypeでは、現在どちらの出力ピンから呼ばれているのか判別できないのですが、
どうしたら良いでしょうか。
出力ピンのクラスは同じものを使っているのですが、オーディオ用のピンクラス、ビデオ用の
ピンクラスと別に作成しなければならないのでしょうか?
0439デフォルトの名無しさん
2007/04/10(火) 19:30:13自分がどっちのピンかを区別して処理を変えればいいじゃん。
0440デフォルトの名無しさん
2007/04/10(火) 21:10:34★ ∧η∧
\_(,,・Д・)<>>437 ただいまんこー!ドピュンコしたあとに、コールバックを外せばOKだぞ。
ヽ |フ コールバックをセットしたままだと永遠にデータが流れるぞ。
/_ _| オレだったらSampleCBのあるクラスに BOOL m_Ochinpoいれて
データを流したくない時はfalseいれて SampleCBのなかでreturn S_OKしちゃうぞ。
オマンコクロッサー!
0441デフォルトの名無しさん
2007/04/10(火) 21:13:06★ ∧η∧
\_(,,・Д・)<>>438 IPin淫乱フェラにあるQueryPinInfoで解決できる気もするぞ。
ヽ |フ 俺も調べないと分らんぞ。スマソだぞ。力になれんぞ。
/_ _|
0442デフォルトの名無しさん
2007/04/10(火) 22:06:540443デフォルトの名無しさん
2007/04/11(水) 00:10:36フィルタ内部の話だからQueryはちがうとおもうぞ。
自分も>>439の意見に賛成です。
�@純粋仮想メソッドGetPinを実装してピン番号を取得
�AGetMediaTypeにてまず�@を呼び出す。
�Bピン番号が「1」ならビデオだから・・・メディアタイプ「Video」を要求
�Cピン番号が「2」ならAudioだから・・・・メディアタイプ「PCMAudio」を要求
iPositionにて要求するものをそれぞれ数個書いてやればいいかな。。
0444デフォルトの名無しさん
2007/04/11(水) 00:49:17★ ∧η∧
\_(,,・Д・)<>>443 オレはトランスフォーマーフィルタで1対1の戦いしかやったこと無かったぞ。
ヽ |フ これでピンが複数あるフィルタも手だせそうだぞ。
/_ _|
0445デフォルトの名無しさん
2007/04/11(水) 00:50:19コンボイの謎を2週くらいクリアしとけ
0446438
2007/04/11(水) 14:38:35>>439
僕はどっちのピンか区別できなくてコマッてます…
>>443
GetPinはピン番号を指定して、その番号のピンを取得するのだと思うのですが。
それだとピンの区別はできなくないですか?
実際には、フィルタはm_pOutputAudioとm_pOutputVideoの二つの出力ピンを持ってます。GetMediaTypeの中で、CBasePin::Name()でピンIDを取得して、判断しようかと思いましたが、結局ピンの指定によって取得値が変わってしまいます。
m_pOutputAudio->Name() とすればAudioが返るし、
m_pOutputVideo->Name() とすればVideoが返るので、
結局どちらのピンかわかりません。(両方が存在するので当たり前ですが)
※m_pOutputAudio,m_pOutputVideoはフィルタ作成時に作られます。
どうしたらよいですかね…
0447デフォルトの名無しさん
2007/04/11(水) 14:59:29if (pOutputAudio == this) {
//オーディオピンの処理
} else {
//それ以外
}
0448448
2007/04/11(水) 17:09:38参考にします。
フィルタのGetMediaTypeでピンを判別するから良くなかったみたいです。
フィルタのGetMediaTypeは、出力ピンのGetMediaTypeからコールされるので、
出力ピンのGetMediaTypeでどっちのピンか判断し、それを記憶しておくことにしました。
CSplitterOutputPin::GetMediaType()
{
if(0==lstrcmpW(this->m_pName, L"Audio")){
//フィルタのメンバ変数にオーディオだと記憶させる。
m_pSplitterFilter->m_bOutputPinAudio=true;
}
else{
//フィルタのメンバ変数にビデオだと記憶させる。
m_pSplitterFilter->m_bOutputPinAudio=false;
}
return m_pSplitterFilter->GetMediaType();
}
↑のようにして、フィルタのGetMediaTypeでは、m_bOutputPinAudioを見て、
オーディオ、ビデオの設定をするようにしました。
一応接続はこれで上手くいきました。何かとても簡単な質問をしてしまった気がしますが…
0449デフォルトの名無しさん
2007/04/18(水) 22:36:27時速80km/hで走る車が1時間何キロ走る?
・・・ポカーン
0450デフォルトの名無しさん
2007/04/19(木) 00:29:28★ ∧η∧
\_(,,・Д・)<1500円の2割引きは計算不能だぞ。俺の脳が再起不能(リタイア)したぞ。
ヽ |フ 時速80kmでオレは走れないので1時間も車を見張れないぞ!
/_ _| 果てしなく遠くが答えだぞ。
0451デフォルトの名無しさん
2007/04/19(木) 06:23:08Webカメラで取った映像を扱いたいので、SDKにあるAMCapを参考に機能を探しているのですが
キャプチャした動画をaviではなくmpeg1等で圧縮して吐き出したいのですが
フィルタを何処の関数で挟めばよいのでしょう。
あと、映像のガンマや彩度等がプロパティで調整できてしまいますが、これはなんのフィルタを使用しているのでしょうか?
初心者質問すいません。
0452デフォルトの名無しさん
2007/04/19(木) 07:35:23プロパティはソース見りゃわかるんじゃない。
以下推測
色調節のフィルタが存在するのではなくて
キャプチャデバイスやそのピンのプロパティじゃないのか。
Webカメラのデバイスドライバが変わればその機能も変わる。
MPEG-1エンコーダって標準装備か?
俺持ってない。存在しないフィルターは使えんよな。
0453デフォルトの名無しさん
2007/04/19(木) 07:54:41沖縄県での選挙ですが、どうか民主党だけは避けてください。県民の生命に関わる可能性があります。
民主党の最大の公約は一国二制度(※)ですが、一度「一国二制度 沖縄」等で検索をお願いします。
この際、民主党のHPで調べても良いです。以下の注釈↓と矛盾することは書いてないはずですから…
※一国二制度
簡単に言えば沖縄を中国と日本の共有物にし、そこに3000万人の中国人を入植させます。
(つまり沖縄人口の 96% を中国人にして、実質、沖縄を中国人の居住地とします。)
さらに「自主」の名の下、沖縄で有事が起きても自衛隊は干渉できません。
3000万人の中国人が、少数派となった130万人の日本人に何をしても、です。
そして中国人の反日感情の強さは、ほとんどの日本人の理解を超えるものです。
今回の選挙で民主党が勝った場合、「自主」「発展」を連呼しつつ段階的に進めていくことになります。
自主と言っても、自主を認めるのが「住人の96%が中国人となった」後だということに気をつけてください。
発展と言っても、新沖縄の少数派となった「少数民族日本人」の発展ではないことに気をつけてください。
0454451
2007/04/19(木) 14:09:38えっと、回答ありがとうございます。
トライ&エラーしながら死んでおります。
>色調節のフィルタが存在するのではなくて
>キャプチャデバイスやそのピンのプロパティじゃないのか。
...確かに、自宅で違うWebカメラで試したときは、設定ダイアログの内容がぜんぜん違っていましたね。
>MPEG-1エンコーダって標準装備か?
もう一度探しなおしたデコーダーだけで、エンコーダーはありませんでした。死んできます。
aviだと保存するにも重いから、実用的なサイズに直して自動保存しておいてって言われたんですが、asfかモーションJPEGかDVか、しか使えないのかな?
まぁ、いくらか頑張ってみます。
0455デフォルトの名無しさん
2007/04/19(木) 21:04:090456デフォルトの名無しさん
2007/04/19(木) 23:22:24GRAPHEDTがあれば買わなくてもいいな俺は。
>>454
MPEG4のコーディック2なら標準装備であるよ。
GraphEdtで↓な構成を書いてみるよろし
「WebCam」→「MPG4Codec2」→「AUXMix」→「FileWriter」
んで「WebCam」のPinプロパティを開いてみる
自分の思った通りに出来る場合
⇒そのままコーディング
自分の思った通り出来ない場合
⇒出来る方法を模索
をやっといた方がはやい
0457454
2007/04/20(金) 10:39:55一応あの後がんばった結果、DV形式とモーションjpegでは圧縮に成功しました
「うーん、なんかサイズ大きいね。asfで圧縮できない?」
といわれたわけで、メディアフォーマットSDKを読んで泣いています。
小さければ文句言われないのでmpeg4の方が楽かもしれません。
なんか進歩日記みたいになってすいませんが...。
0458デフォルトの名無しさん
2007/04/20(金) 20:55:50御礼を言うのは大変素晴らしいが、どこまで書いたことを理解できたのか
解るように(回答が的外れでなかったか知りたい)
内容についても一言触れて欲しかったな
と、会社では立場が最下層回答者の愚痴。
0459デフォルトの名無しさん
2007/04/20(金) 21:39:00飯食うので、この辺で。
■ このスレッドは過去ログ倉庫に格納されています