問題タブ [samplegrabber]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1037 参照

directshow - DirectShowでMatroskaMuxerでSampleGrabberを使用する方法は?

MKVファイルを書くための簡単なグラフを作成しました。しかし、私はファイルライターを使いたくありません。SampleGabberを使用し、簡単なプログラムを使用してストリームを取得したいと思います。問題は、Matroska muxer以外からデータを取得することです!(どうすればよいですか?

VirtualCamera-x264-MatroskaMuxer-SampleGraber-ヌルレンダラー
(出典:narod.ru

だから私の質問は、DirectShowでMatroskaMuxerでSampleGrabberを使用する方法ですか?

0 投票する
2 に答える
1477 参照

c++ - 独自のカスタム DirectShow レンダラーを実装する方法は?

独自のカスタム DirectShow レンダラーを実装して、A-la または SampleGrabber の代わりに使用する方法

0 投票する
2 に答える
2715 参照

c# - SamplegrabberはAVI/MPEGファイルでは正常に機能しますが、WMVでは途切れます

私は最新バージョンのWPFMediaKitを使用しています。私がやろうとしているのは、Samplegrabberを使用してビデオファイルのビデオフレームをキャプチャし、それらを個別のビットマップとして使用できるサンプルアプリケーションを作成することです。

これまでのところ、グラフを作成してレンダリングするときに、次のコードで幸運を祈っています。ただし、このコードを使用して.wmvビデオファイルを再生すると、samplegrabberが接続されていると、ジャンプしたり途切れたりして再生されます。サンプルグラバーフィルターを追加した行をコメントアウトすると、正常に機能します。繰り返しになりますが、AVI/MPEGなどでサンプルグラバーと正しく連携します。

と:

.wmvまたは.asf形式が非同期か何かであると言っているいくつかのことを読みました。WMAsfReaderを挿入してデコードしようとしましたが、VMR9に移動すると、同じ動作をします。IBaseFilter renderer = CreateVideoMixingRenderer9(m_graph, 1);また、行をコメントアウトすると正しく機能するようfilterGraph.Render(pins[0]);になりました。唯一の欠点は、コントロールではなく独自のActivemovie未亡人でレンダリングされることですが、samplegrabberは正しく機能し、スキップすることはありません。ですから、バグはVMR9/サンプルグラブのどこかにあると思います。

何か助けはありますか?私はこれに不慣れです。

0 投票する
1 に答える
2610 参照

c# - DirectShowNetを使用してキーフレームを探す

私のタスクは次のとおりです。グラフを作成し、それにSampleGrabberをアタッチし、グラフを作成した後、IMediaSeekingインターフェイスを使用してキーフレームを取得します。

以下は私がしたことです:メインメソッドで:

SampleCB()コールバックメソッドの場合:

このように、私は物事を設定しました。これで、プログラムを実行すると、すべてが正しく読み込まれます。ただし、コールバックは1回だけ呼び出され、その後レンダリングが停止します。これ以上のレンダリングやコールバックはありません。別のコールバックメソッドISampleGrabber::BufferCB()を試して、同じ運命に従うかどうかを確認しました。しかし、違います!BufferCB()は、フレームが取得され、ビデオが最後までレンダリングされるたびに呼び出されます。

私は何が間違っているのですか?これに関する提案はありますか?ありがとうございました :)

0 投票する
1 に答える
1194 参照

directshow - IMediaSample DirectShow.Net を使用してキー フレームを探す

私の知る限り、フレームがキー フレームかどうかを確認するには、IMediaSample::IsSyncPoint() メソッドを確認する必要があります。このメソッドは、フレームがキー フレームの場合は 0 (S_OK) を返します。その他の場合。

しかし、IsSyncPoint() メソッドは、取得されて ISampleGrabberCB::SampleCB() コールバック メソッドに渡されるすべてのフレームで 0 を返すだけです。

私のコールバックに含まれるコードは単純です:

ここで何が欠けていますか?

0 投票する
2 に答える
1749 参照

c++ - DirectShow でサンプルグラバーの準備ができていることを確認する

DirectShow アプリケーションの作業を続けており、最後の仕上げを行っています。プログラムが行っていることは、1 秒間隔でビデオ ファイルを調べ、サンプルグラバーから現在のバッファーをキャプチャし、次に進む前に処理することです。ただし、テストで画像が重複していることに気付き、DirectShow がその 1 秒間隔でビデオを十分に速くインクリメントしていないことがわかりました。私の質問は、現在のフレームを取得して処理するために、DirectShow がサンプルグラバーを呼び出す準備ができているかどうかを確認する方法があるかどうかです。現時点では、スリープを 1 秒間呼び出しますが、より良い方法が必要です。助けてくれてありがとう。

編集

ビデオの位置が、取得して処理したい次の位置と等しいかどうかを確認するためのチェックを実行しようとしました。これにより、重複するフレームの数は減りましたが、まだチャンクで表示されています。

0 投票する
1 に答える
679 参照

filter - DirectShow フィルター グラフをシャットダウンするときに Sample Grabber フィルターがこれ以上コールバックを生成しないようにするにはどうすればよいですか?

DSPACK コンポーネント ライブラリを使用して Delphi 6 で記述された DirectShow アプリケーションがあります。フィルター グラフをシャットダウン (再生を停止) すると、コールバック メソッドを所有するオブジェクトが破棄された後に発生する Sample Grabber DirectShow フィルターからのコールバックが原因で、アクセス違反が発生します。毎回ではありませんが、かなりの頻度で発生します。保留中の Sample Grabber コールバックがすべて受信または削除されるように、グラフをシャットダウンするために必要な手順が記載されたコード サンプルまたはドキュメントを教えてもらえますか?

0 投票する
1 に答える
1559 参照

directshow - Different approaches on getting captured video frames in DirectShow

I was using a callback mechanism to grab the webcam frames in my media application. It worked, but was slow due to certain additional buffer functions that were performed within the callback itself.

Now I am trying the other way to get frames. That is, call a method and grab the frame (instead of callback). I used a sample in CodeProject which makes use of IVMRWindowlessControl9::GetCurrentImage.

I encountered the following issues.

  1. In a Microsoft webcam, the Preview didn't render (only black screen) on Windows 7. But the same camera rendered Preview on XP.

Here my doubt is, will the VMR specific functionalities be dependent on camera drivers on different platforms? Otherwise, how could this difference happen?

  1. Wherever the sample application worked, I observed that the biBitCount member of the resulting BITMAPINFOHEADER structure is 32.

Is this a value set by application or a driver setting for VMR operations? How is this configured? Finally, which is the best method to grab the webcam frames? A callback approach? Or a Direct approach?

Thanks in advance,

0 投票する
0 に答える
496 参照

memory-leaks - Microsoft DTV-DVD ビデオ デコーダでのメモリ リーク?

AVI コンテナで h.264 をレンダリングしている間、アプリケーションのビデオ ファイルのメモリ消費量が約 150 Mb/min の高速で上昇します。

これは私のグラフの画像へのリンクです: http://picturepush.com/public/8926555

LAV ビデオ デコーダを使用している場合 - メモリ リークはありません。

最初に、コードでリークが発生したことをお勧めしますが、スイッチをオフにするだけでは (コールバックの開始時に「return S_OK」を設定)、両方のサンプル グラバー フィルターを使用すると、リークが継続します。

また、このような停止グラフの後にすべてのフィルターを解放しようとしましたが、これは削除リークではありません:

メモリリークを解消する方法を教えてください。

Graphedit でさまざまなグラフを作成し、短い (6 秒) h.264 ビデオ ファイルの繰り返し再生を観察しました。

  1. picturepush.com/public/8931745 - 完全なグラフ - +6 Mb 成長 再生後毎回プライベート バイト
  2. picturepush.com/public/8931760 - DMO コンバータあり、サンプルグラバなし - メモリ リークなし
  3. picturepush.com/public/8931766 - DMO コンバーターあり、サンプルグラバーなし、ビデオ レンダラーあり - +7 Mb 成長 再生後毎回プライベート バイト
  4. picturepush.com/public/8931770 - デコーダのみ - メモリリークなし
0 投票する
1 に答える
1496 参照

directshow - c ++ Builder:ビデオをpngに変換-directshowを使用したスナップショット

あなたの助けのおかげで、directshowをもう少しうまく使うための正しい単語を検索することができました。SampleGrabberオブジェクトの使用方法のチュートリアルをここで見つけました:http: //msdn.microsoft.com/en-us/library/windows/desktop/dd407288%28v=vs.85%29.aspx

最初のフレームだけでなく、すべてのフレームをPNGに保存するように、実装して少し変更することができます。そのために私はコロナを使います。しかし、私は周りの何かを推測しただけで、どのバッファに私のデータが含まれていて、どの形式であるのかよくわかりません。

それで、私は基本的に3つの質問があります:
私はSavePNGを正しく使用していますか?結果の画像は逆さまになります!
ビデオのBaseFilterをカメラに接続されているものと交換できますか?
pBuffer [123]と入力するだけでrgb-byte-informationを取得できるように、ImagedataにpBufferが含まれていますか?

私はembarcaderoのC++-Builder(XE2 16)を使用しています。

これが私がウェブサイトで見つけたコードですが、少し変更されています(見やすくするためにエラー処理が削除されています。各時間の後に= ...失敗したチェックがあります):

私はひどく悪いことを何もしていないことを願っています...私は本当にすべてを研究しようとしました^^誰かが上記の私の3つの質問について知っていますか?ここで本当に間違っていることがわかりました。また、修正して改善できるように、教えていただければ幸いです。

よろしく、ジュリアン