0

そのため、ローカル エリア接続を介して 2 つのビデオ ソースをストリーミングするアプリケーションがあります。各ビデオには独自のフィルター グラフがあり、ビデオをデコード フィルターと Infinite Pin Tee フィルターにかけます。次に、GMFBridge フィルターがあり、WM ASF フィルターを使用して記録のオン/オフを切り替えるために使用されます。ティー フィルターの別の出力から実行されるビデオ レンダラーもあります。

現在、これはすべて問題なく動作しますが、アプリケーション全体のメモリ消費量は 80 MB をはるかに超えており、記録をオンにすると 100 MB を超える可能性があります。

DirectShow のメモリ消費を最小限に抑えるためのヒントはありますか?

DirectShowLib 相互運用ライブラリを介して、C# (.NET 2.0) から DirectShow を使用しています。

乾杯

4

1 に答える 1

1

.NETアプリケーションに関する私の最初の提案は、タスクマネージャーを信頼しないことです。パフォーマンスモニターを使用して、プライベートバイトカウンターを追加します。それはあなたにあなたの本当のメモリ使用量を教えてくれます。

別の注意点として、サードパーティのフィルター(クローズドソース)を使用しているため、ビデオの解像度とフレームレートを下げる以外に、メモリ使用量を減らすためのオプションは実際にはありません。

于 2009-09-30T23:10:14.187 に答える