- 1 名前:デフォルトの名無しさん [2008/06/22(日) 18:38:21 ]
- DirectShowプログラマーのみなさん。
メソッドのデッドロックとか、わけわからん現象多くないすか。 このスレに怒りやテクをぶつけましょう。 関連スレ Win32API質問箱 Build67 pc11.2ch.net/test/read.cgi/tech/1212931246/ くだすれDirectX(超初心者用) part.3 pc11.2ch.net/test/read.cgi/tech/1193605500/ 【C++】 DirectX初心者質問スレ Part17 【C】 pc11.2ch.net/test/read.cgi/tech/1207702556/ DirectX総合スレ (Part8) pc11.2ch.net/test/read.cgi/gamedev/1205306118/ 【PureVideo】DirectX Video Acceleration【AVIVO】 pc11.2ch.net/test/read.cgi/tech/1178285897/
- 196 名前:デフォルトの名無しさん mailto:sage [2009/01/09(金) 18:17:50 ]
- されてるって書いてあるのに何故インストしない?
BaseClassesの方ならStandardのSDKにすら入ってないよ。 いつもどうり別途Windows SDKが必要。
- 197 名前:デフォルトの名無しさん mailto:sage [2009/01/09(金) 18:22:57 ]
- ExpressじゃなくてStandardだから。
Standardはどうなのか知りたかった
- 198 名前:184 mailto:sage [2009/01/09(金) 21:51:03 ]
- >>186
なるほど DoRenderSample() { ... rendered = true; ... } movie->play(); while(!movie->isRendered()) { } こんな感じ?確かにあまりまっとうじゃない・・ ttp://www.geekpage.jp/programming/directshow/samplegrabber-3.php 画像の取得はCBaseVideoRendererで、1フレーム目でとめるのには SampleGrabberを使うということはできるのかな
- 199 名前:デフォルトの名無しさん mailto:sage [2009/01/09(金) 22:34:33 ]
- >>184
そのままの意味だ。RunしないでPause。
- 200 名前:デフォルトの名無しさん mailto:sage [2009/01/09(金) 22:37:33 ]
- ttp://msdn.microsoft.com/ja-jp/library/cc356923.aspx
つか、全部書いてあるだろ。ドキュメントくらい読め。
- 201 名前:184 mailto:sage [2009/01/09(金) 23:53:34 ]
- しかし なにもおこらない
Runして初めて表示される・・
- 202 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 00:58:38 ]
- oops!レンダラ自作してるのか。悪かった。
Pauseでポスターフレーム出す処理はレンダラが実装する必要があるんだわ。 void OnReceiveFirstSample(IMediaSample *pMediaSample) { DoRenderSample(pMediaSample); } これ追加するとよかばってん
- 203 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 08:09:02 ]
- おー、OnReceiveFirstSampleってそうやって使うんか。
184じゃないけどthx
- 204 名前:169 mailto:sage [2009/01/12(月) 19:29:05 ]
- とりあえずGraphEditを使ってみた結果
ttp://sageuploader.if.land.to/cgi-bin/1upload/src/sage1_8271.jpg このようにすることでライブストリーミングが保存できました あとはこれをプログラムで書くだけなのですがピンのつなぎ方がよくわかりません 再生の場合は ttp://www.geekpage.jp/programming/directshow/renderfile-url.php にあるように pMediaControl->RenderFile(URL); pMediaControl->Run(); という風にすればよいというのはわかるのですがこの場合はどうすればよいのでしょう? SetOutputFileNameとRenderStreamを使えばよいのかな?と考えてはいるのですが サンプルがビデオキャプチャからの取得方法ばかりで こういった場合にどのような記述をすればよいのかわかりません
- 205 名前:デフォルトの名無しさん [2009/01/12(月) 22:51:43 ]
- これ使って作ったツールはWindows2000でも動くかな?
- 206 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 01:18:52 ]
- >>204
RenderFilleやっちゃいかん。 ソースフィルタ(URL)をフィルタグラフに登録したあと、 出力ピンを列挙してAVI Muxに1つずつ接続すればおk たぶん。 あ、あとファイル出力も手動で指定してフィルタ繋いでね。
- 207 名前:169 mailto:sage [2009/01/13(火) 06:56:07 ]
- >>206
ありがとうございます 以下のようなプログラムを作ってみたのですが ttp://uploaders.ddo.jp/upload/1mb/src/1up5294.txt コンパイルすれば通るものの実行してもファイルが作成されません これはピンのつなぎ方などが間違っているのでしょうか?
- 208 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 12:50:40 ]
- なんでエラー値をチェックしないの?
- 209 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 16:10:02 ]
- >>206さんのアドバイスが理解されていない・・・・
- 210 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 17:18:19 ]
- >>208
チェックしてみましたがどこもエラーは返ってきませんでした >>209 すいません・・・ >>206と ttp://msdn.microsoft.com/ja-jp/library/cc352330.aspx の辺を参考にしてやってみたんですがどの辺がおかしかったでしょうか? ソースフィルタ(URL)をフィルタグラフに登録、というのは pGraph->AddSourceFilter(URL, L"Source Filter", &pSrc); 出力ピンを列挙してAVI Muxに1つずつ接続 というところはRenderStreamを2回行ってみたのですが 根本的に間違っていたりしたらすみません・・・
- 211 名前:169 mailto:sage [2009/01/13(火) 18:38:16 ]
- あー見返すとなんか滅茶苦茶ですね
一から書き直してきます
- 212 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 19:57:05 ]
- okwave.jp/qa4625143.html
- 213 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 20:29:46 ]
- サンプルをビルドして動いたからと言って
安易に一歩踏み込むとすぐに樹海に迷い込むのがDirectShow。
- 214 名前:169 mailto:sage [2009/01/13(火) 22:44:13 ]
- 以下のように作り直してみたのですが、
ttp://uploaders.ddo.jp/upload/1mb/src/1up5301.txt AddFilterからどうしてもNULLポインタが返ってきたり GetPinがコンパイルをとおらずPin同士の接続ができなかったりしますが とりあえずそれらの部分を除外して実行した結果 localhost:7144/test.aviのようなファイルは保存に成功できました。 しかしライブストリーミングの場合は解像度と再生時間はきちんとできた動画が作成されたのですが 再生しようとしても再生されない動画ファイルでした やはりAddFilterやPinの接続がきちんとできていないことが原因なのでしょうか? GraphEditでは簡単にできても実際に作るのは難しいものなのですね 単に私が駄目なだけかもしれませんが
- 215 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 22:55:51 ]
- 確かに、GraphEditの様子をそのままコードにしてくれるツールがあったら欲しいな。
- 216 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 23:37:12 ]
- >>214
MSDNの通りにプログラムが書けてない。 IGraphBuilderはCoCreateInstanceしない。 ICaptureGraphBuilder2からGetFiltergraphで取得する。
- 217 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 01:01:13 ]
- >>216
なるほど hr=CoCreateInstance(CLSID_CaptureGraphBuilder2, NULL, CLSCTX_INPROC_SERVER,IID_ICaptureGraphBuilder2, (void **)&pBuilder); hr=pBuilder->GetFiltergraph(&pGraph); こういうことですね しかしこうやってもGetPinがコンパイルを通らないのは変わらず そこをコメントアウトして実行すると hr=pGraph->AddFilter(pAVIMux,L"AVI Mux");の部分で 例外が出て終了する様になりました これもコメントアウトしたばあいは前回と変わらず解像度と再生時間のみ正しい 再生されない動画ファイルが作成されるだけでした・・・
- 218 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 01:21:22 ]
- なんだそのGetPinってのはどこからでてきた?自作メソッドなのか?
- 219 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 01:38:19 ]
- >>218
これ使ってピン同士を接続するのかなと思ってコピペしてきたら ただの自作メソッドでした 早とちりしてすみません 削っても動かないことに変わりはないのですが・・・
- 220 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 01:42:46 ]
- >>219
もう少し頑張って勉強してからまたおいで。 エスパーじゃないから、そんなんでコンパイル通らないとか言われても困るわ。
- 221 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 15:41:50 ]
- VideoWindow->put_OwnerでVFW_E_NOT_CONNECTEDが返ってくるのですが・・・
if( FAILED(CoCreateInstance( CLSID_FilterGraph, NULL, CLSCTX_INPROC, IID_IGraphBuilder, (void **)&GraphBuilder )) ) return false; if( FAILED(GraphBuilder->QueryInterface( IID_IMediaControl, (void **)&MediaControl )) ) return false; if( FAILED(GraphBuilder->RenderFile( buff, NULL )) ) return false; if( FAILED(GraphBuilder->QueryInterface( IID_IVideoWindow, (void **)&VideoWindow )) ) return false; if( VideoWindow->put_Owner( (OAHWND)PlayWnd ) == S_OK ){ ←ここでS_OKにならない VideoWindow->put_WindowStyle( WS_CHILD|WS_CLIPSIBLINGS ); if( FormWnd && MediaEventEx->SetNotifyWindow( (OAHWND)FormWnd, WM_GRAPHNOTIFY, 0 ) != S_OK ) return false; } PlayWnd をNULLにしてもS_OKにはなりませんでした。 何が原因でしょうか?
- 222 名前:221 mailto:sage [2009/01/15(木) 19:18:33 ]
- 対象コンピュータをx64にしてたらエラーがでてx86にすると正常に通りました><
ちなみに上記のコードの後に読み込みと同時に1フレーム目を表示されようと MediaSeeking->SetPosition ←上のコードには書いてないですが今はQueryInterfaceしてます MediaControl->StopWhenReady(); VideoWindow->Visible( OATRUE ); を入れたのですが、何故か1回目の読み込み時には表示されず 2回目以降に表示されるのですが、何が原因ですか?
- 223 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 22:57:20 ]
- C++で作ったフィルタをC#で使いたいんですが
作ったフィルタをregsvr32で登録しないで使う方法ってありますか? 登録するのは(ユーザーにとって)面倒だし クラスの型がIBaseFilterにしか出来ないので アプリケーション側からデータを渡したり出来ません。
- 224 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 23:06:15 ]
- その程度の事もわからないお前には無理だ。
C#のCOMのラッピングのメカニズムも理解できていないんだろ?
- 225 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 23:08:01 ]
- Wevdestサンプルで、RenderFileで作成したグラフを最後のDefault DirectSound Deviceだけ切り離して付け替える時
RemoveFilterに失敗します。処理は正常なのですが、RemoveFilterはなぜ失敗なんでしょうか? この行をいれないとRunで失敗するので入れてるんですが、失敗してるのに意味があるんでしょうか? CComPtr<IBaseFilter> DS_DefaultDirectSoundDevice; hr = DS_graph->FindFilterByName(L"Default DirectSound Device", &DS_DefaultDirectSoundDevice); hr = DS_DefaultDirectSoundDevice->FindPin(L"Audio Input pin (rendered)", &pin_DefaultDirectSoundDevice); hr = pin_DefaultDirectSoundDevice->ConnectedTo(&pin_DefaultDSDeviceTo); hr = pin_DefaultDSDeviceTo->Disconnect(); hr = DS_graph->RemoveFilter(DS_DefaultDirectSoundDevice); hr = DS_graph->ConnectDirect(pin_DefaultDSDeviceTo, pin_WaveDest_In, NULL);
- 226 名前:デフォルトの名無しさん [2009/01/15(木) 23:39:31 ]
- もはや時代はMediaFoundation
- 227 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 23:52:39 ]
- >>225
エラーコードは何ぞ? 試してないから外してるかもしれないけど、 pin_DefaultDSDeviceToをReleaseしてないから、ってなオチはない?
- 228 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 00:01:29 ]
- hr = pin_DefaultDSDeviceTo->Disconnect();
hr = pin_DefaultDirectSoundDevice->Disconnect();
- 229 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 00:43:07 ]
- エラーなくなりました。
フィルターを削除する時繋いであったピンを解除。 繋ぎ換えるのにも解除後接続ですね。覚えました 意外と融通きかないんですね・・・ ありがとうございました。
- 230 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 03:43:18 ]
- wmvが登場したとき wmvのコンテナに対応したソースフィルタを
書けと言われたときはくらくらと眩暈がした。
- 231 名前:デフォルトの名無しさん [2009/01/16(金) 12:36:29 ]
- ふうん
- 232 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 13:31:35 ]
- 1フレーム毎にイベントを取りたいのですが
イベント通知コードは何になるんですか?
- 233 名前:221 mailto:sage [2009/01/16(金) 15:57:23 ]
- >>222で最初のフレームが表示sれないって話なんですが
どうやら一瞬表示してるみたいで VideoWindow->Visible( OATRUE );の下にSleep( 1000 );と入れると 1秒間最は初のフレームを表示して、1秒後に消えてしまいます。 そして2回目に>>221を走らせた時はずっと最初のフレームを表示した状態になります 何が原因でしょうか・・・
- 234 名前:221 mailto:sage [2009/01/16(金) 16:11:44 ]
- わかりました。
どうやらStatic Textに描画されてるのがまずかったみたいです。 Picture Controlにしたら消えなくなりますた。。。 なにこれ・・・
- 235 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 17:00:57 ]
- Windowsの描画の基本的な所を理解していないのが問題
- 236 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 17:10:21 ]
- >>235が基本を教えてくれるそうです。
では、どうぞw
- 237 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 01:24:29 ]
- 他人が理解できる説明の仕方を意識しよう。あと、日本語を学べ。
- 238 名前:デフォルトの名無しさん [2009/01/19(月) 09:02:44 ]
- ではまず国語辞典を勉強したらよろしいでしょうか?わかりません><
- 239 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 16:28:00 ]
- 単語を覚えるだけでは言語を会得できないな。
日本語でも英語でもプログラミング言語でも。
- 240 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 17:49:44 ]
- GetConnectedMediaTypeでVFW_E_NOT_CONNECTEDが返って来るのですが原因は何でしょうか?
その前にやってるSetMediaTypeはちゃんとS_OKが返ってきてます。
- 241 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 18:22:51 ]
- VFW_E_NOT_CONNECTED だから
繋げろ!
- 242 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 18:30:15 ]
- >>241
言い忘れてましたが、VFW_E_NOT_CONNECTEDが出るのはGetConnectedMediaTypeだけで 他は普通にOKなので動画の再生はできています。
- 243 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 18:51:39 ]
- 再生にサンプルグラバは関与してますか?
そうでなければ別にサンプルグラバが繋がってなくても再生に支障はありませんよ。 少々面倒でもROTを登録して外部からフィルタグラフを覗けるようにしておくと デバッグが便利ですよ。
- 244 名前:243 mailto:sage [2009/01/19(月) 18:52:57 ]
- × ROTを登録
○ ROTに登録
- 245 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 19:03:42 ]
- >>243-244
やりたい事はと言うと、再生して指定フレームの画像をbmpとして保存したかったのです。 その為にサンプルグラバでAddFilter後にビデオヘッダを取得したりと・・・ とりあえずGraphEditでみてみようとおもいます・・・ ちなみに、同じソースを別PCで動かすとGetConnectedMediaTypeでエラーはでませんし 正常にbmpファイルに落とすことができています。
- 246 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 00:24:24 ]
- >指定フレーム
フレームで指定ってできるんだっけ? ○番目のフレームとか。
- 247 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 00:41:20 ]
- つSetPositions
とはいえ、TIME_MEDIA_TIMEしか使えないストリームだと ちょっと難しいけど。
- 248 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 22:49:54 ]
- SetPositionsって時間指定じゃん
- 249 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 23:40:38 ]
- TIME_FORMAT_FRAMEを指定してから使うよろし。
>>247でも書いてるけど、すべてのストリームでTIME_FORMAT_FRAMEが使えるとは限らない。 本格的にやるならDESを使うんですかね。 自分はやったことないので分からないですが。
- 250 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 15:56:17 ]
- コーデックの関係でSampleGrabberでの画像抽出ができずBasicVideoを使っているのですが
BasicVideoのGetCurrentImageで画像を取ると3秒もかかってしまうのですが これをもっと早く取る方法ってありますか?
- 251 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 16:27:45 ]
- ムリポ
「コーデックの関係でSampleGrabberでの画像抽出ができず」辺りを もう少し詳しく話した方が、いい話が聞けるかもよ?
- 252 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 16:56:00 ]
- >>251
そうですね。失礼しました。 カノープス社のコードックであれしてるaviファイルから静止画を取りたいのですが これが何故かSampleGrabber->GetConnectedMediaTypeでエラーになるんです。 ちなみにほかのaviファイルでは正常に静止画が取得できています。 それで試しにBasicVideoで静止画と取ってみたら取れたのですがこれが遅くて・・・
- 253 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 17:57:02 ]
- 小出しはやめてね
- 254 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 18:04:39 ]
- カノープスのコーデックといってもHQとかMJPGとかいろいろある
- 255 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 18:11:38 ]
- HQです。
今色々試してたんですが、SetMediaTypeするときの サブタイプをMEDIASUBTYPE_RGB32にすると GetConnectedMediaTypeでエラーが出ずに通ったのですが・・・ これすると、映像がさかさまになってる・・・
- 256 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 21:17:22 ]
- >>255 さかさまってビットマップか?
- 257 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 21:44:12 ]
- ---------------------------------------------------------------------------
可能な限り速くコマ送りするのってどうするんですか? IVideoFrameStepを使うと1倍速以上にはならないし、逆方向には進めません。 独自レンダラでレンダリングした画像を 加工して1コマずつ連番BMP出力したいだけなんですが。 (将来的にはDirectShowを使った出力も実装したいが、取りあえずBMPで) >>255 memcpyを使って画像を自力で反転するしかないのでは。 (画像の横幅*4byteのサイズでコピーを繰り返す) 4byteなのはMEDIASUBTYPE_RGB32で32bitの画像と指定したからです。 もしRGB24なら3byteです。
- 258 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 00:52:55 ]
- >>255
BITMAPINFOHEADERか何かで上下反転してるかどうかの判定は 可能じゃなかったかな? >>257 SampleGrabberを使ってた時の経験だけど、SetSyncSource(NULL)では うまくいかなくて、SetRateで適当に100倍くらいを設定して全力取得したり したことはあります。ただ、コーデックによってはうまくいかないかも。
- 259 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 09:47:42 ]
- MIDIをWAVEに変換する方法はあるんでしょうか?
再生される以上どこかで電圧値に置き換わってると思うんですが、サウンドボードで変換されてるんですか? MIDIデフォルトOUTを置き換えても不可能でしょうか?WAVE関連のものに置き換えできませんでした
- 260 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 10:15:08 ]
- >>256
いえRGB32にすると映像の方がさかさまになるんですよ。 RGB24にすると映像は正常なのですがGetConnectedMediaTypeでエラーになりまふ >>258 あ、そうなんですか? ちょっとヘルプみてみます。
- 261 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 10:32:57 ]
- >>260
取得できたAM_MEDIA_TYPEからBITMAPINFOHEADERを引っ張り出して biHeightの正負を見てみそって。 一応ココ(↓)見とき。 ttp://msdn.microsoft.com/ja-jp/library/cc352308.aspx ttp://msdn.microsoft.com/ja-jp/library/cc371307.aspx ttp://msdn.microsoft.com/ja-jp/library/cc352096.aspx フォーマットによって成功したりしなかったりはColor Space Converterが 途中に入るかどうかによるのかもしれん。
- 262 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 10:38:29 ]
- >>261
ありがとうございます。 しかしbiHeightが負で判別できた場合はどうやって映像を正常に表示できるんでしょうかこれ。
- 263 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 10:56:49 ]
- ん?
レンダリング結果も上下反転してるの? BMPに保存したときだけじゃなくて?
- 264 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 11:02:18 ]
- BMPファイルのヘッダの高さもそのままマイナスにすれば普通は問題ない
まれに対応していないソフトもある
- 265 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 11:32:50 ]
- >>263-264
静止画は正常で動画の方が逆になるんですよね・・・ でもRGB24にすると動画は正常になるけど GetConnectedMediaTypeでエラーになって・・・
- 266 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 12:47:44 ]
- それがDirectShowの仕様です
- 267 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 18:26:01 ]
- 全フレームの画像を取得したいのですが
SetPositionsでフレームを移動して取ると時間がかかるので もっと効率的な方法はどうしたらいいですか?
- 268 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 20:41:02 ]
- >>259
WavDestとFileWriterでよかばってん >>267 ストリーム流しながらのサンプルグラバでよかばってん
- 269 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 20:52:30 ]
- ばってん何?
- 270 名前:257 mailto:sage [2009/01/23(金) 22:24:25 ]
- >>258
SetRateは(貴方が書いているように)コーデックによっては使えないので・・ SetSyncSource(NULL)しても再生は別スレッドで行われているのに どうやって レンダリング→BMP出力→レンダリング→BMP出力→... のように同期させられるんでしょうか。
- 271 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 22:27:17 ]
- 基本的な事だけどpushとpullモデル理解しているか?
- 272 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 22:37:32 ]
- >>257
サンプルグラバとNullRenderer使えよ
- 273 名前:257 mailto:sage [2009/01/23(金) 23:17:54 ]
- >>271
push??pull? ttp://unkar.jp/read/pc11.2ch.net/tech/1162913156 色々調べてみたら、これがヒットしました。 ・・・ソースフィルタを作って加工したデータをこのフィルタに送るんでしょうか
- 274 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 23:20:49 ]
- MSのドキュメントも読んでいないなんて死んだほうがいい
- 275 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 11:38:54 ]
- >>268
ダメです、MIDIParsaとWevDestがつながりません。 pMediaType->SetType(&MEDIATYPE_Midi); の変更もしてみたんですがダメです。グラフエディタでつながらないと出ます お願いします
- 276 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 13:47:34 ]
- >>275
情報少なすぎてわかるわけがないよ。エスパーじゃないし。 わかるように書いてよ。
- 277 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 15:04:31 ]
- MIDIのトランスフォームフィルタを自作するか見つけてくる必要がある。
- 278 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 17:51:50 ]
- まったく作れそうな気がしません
音源はどこから引っ張ってくればいいんですか?
- 279 名前:267 mailto:sage [2009/01/26(月) 11:45:44 ]
- >>268
再生しながらはどのようにゲットすればいいですか? イベントですか? でもイベントでは1フレームずつ入ってこなかったしなあ
- 280 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 18:15:47 ]
- コールバックですよコールバック
このスレでも何度か話題に出てるんで探してみれ
- 281 名前:デフォルトの名無しさん [2009/01/29(木) 21:59:01 ]
- COutputQueueを使ってコマ送りって可能?
- 282 名前:デフォルトの名無しさん [2009/01/30(金) 13:26:27 ]
- サンプルグラバのGetCurrentBufferで静止画を取得する時に
動画サイズのまんまではなくて縮小して取得したい時はどうしたらいいですか?
- 283 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 15:50:00 ]
- 自分で縮小でも拡大でも好きにすればいいんじゃない?
- 284 名前:デフォルトの名無しさん [2009/02/02(月) 03:20:48 ]
- 複数の音楽ファイル(mp3とWMA)の一部ずつ(サビの部分)を繋いで、一つのWAVにしたいのですが、
どう作ればいいのか判りません。 最初の曲は、サビまでシークしてしてから、WAVEファイルにはできているようです。 ですが、2曲目を処理しようとすると、グラフを停止しないと、接続できないという現状です。 例えば、2つの曲をフェードインアウトで繋げる処理はどう書けばいいのでしょうか? なにかヒントやサンプルなど教えてもらえるとありがたいです。
- 285 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 04:29:59 ]
- 高校の物理をちゃんと勉強していれば簡単な事なんだけどね
- 286 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 10:56:55 ]
- DESじゃないのん?
- 287 名前:デフォルトの名無しさん [2009/02/03(火) 01:16:38 ]
- >>286
DESってDirectshow編集サービスのことですよね。 ちょっと調べてみます。 ありがとうございました。
- 288 名前:デフォルトの名無しさん [2009/02/05(木) 14:32:39 ]
- 質問です。
MP4ファイルの頭に5Kほどのデータを付加したファイルを再生する フィルターをASyncサンプルに手を加えて作りました。 GraphEditではファイルを選択して、VideoRendererとPIN接続すると、 MP4Splitterとffdshow codecが間に入り再生できます。 このファイルをGraphEditにD&Dするとはじかれます。 これをIGraphBuiderでグラフを作って再生したいのですが、 どうしても自作フィルターとMP4SplitterとのConnectで CANNOT_CONNECTが帰ってきてしまいます。 自作フィルタにファイルパスを与えてグラフに追加するという、 GraphEditでの動作をどのようにプログラムしていいのかわかりません。 方法をご存知の方、ご教授ください。 ベースとするフィルタを間違えているのでしょうか?
- 289 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 15:14:59 ]
- デバッグすりゃ原因がわかるだろ
- 290 名前:デフォルトの名無しさん [2009/02/05(木) 15:17:29 ]
- >>289
知らないならレスしないで下さい。ウザいだけです。。
- 291 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 16:01:11 ]
- 俺もデバッグすりゃ原因が分かると思う。
- 292 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 16:50:34 ]
- IGraphBuilder::RenderFile() を使っちゃってる、に1票
・・・じゃないよね。 自作フィルタはちゃんと自前でCoCreateInstanceしてる?
- 293 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 16:51:15 ]
- あ、メリット値を適切に設定してるなら別ね。
- 294 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 17:14:08 ]
- GraphBuilderに自作SourceFilterとVideoRendarerだけ追加したら
後はRendaerFileでいいんじゃないの? そうすりゃMP4Splitterとffdshow codecが勝手に間に入るだろ
- 295 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 23:36:50 ]
- LONGLONG tmp = (LONGLONG)(frame * Renderer->getATPF());
pMediaSeeking->SetPositions(&tmp,AM_SEEKING_AbsolutePositioning, NULL,AM_SEEKING_NoPositioning); AverageTimePerFrameを使ってシークするのって駄目なんですか? たまに思った位置にシークできないファイルがあります。
- 296 名前:デフォルトの名無しさん [2009/02/07(土) 01:54:57 ]
- ISampleGrabberについての質問です。
DirectShowでmp3を再生中にISampleGrabberのGetCurrentBufferを行うと、 再生中の場所の波形データが取得できると思うのですが、 毎回GetCurrentBufferを行っても、1秒間に約3回ほどしか取得するデータに変化がありません。 リアルタイムに現在再生中の場所の波形データを取得するにはどうしたらよいのでしょうか。
|

|