0

因此,我有一个应用程序通过本地连接流式传输两个视频源。每个视频都有自己的过滤器图,将视频通过解码过滤器和 Infinite Pin Tee 过滤器,然后是 GMFBridge 过滤器,用于使用 WM ASF 过滤器打开/关闭录制。还有一个视频渲染器运行 tee 过滤器的不同输出。

现在,这一切都没有问题,但是整个应用程序的内存消耗远远超过 80 MB,并且在打开录制时可以达到 100 以上。

我想知道是否有任何技巧可以最大限度地减少 DirectShow 内存消耗?

我通过 DirectShowLib 互操作库使用 C# (.NET 2.0) 中的 DirectShow。

干杯

4

1 回答 1

1

我对 .NET 应用程序的第一个建议是不要信任任务管理器。使用性能监视器并添加 Private Bytes 计数器。这将告诉您真实的内存使用情况。

另一个注意事项,因为您使用的是 3rd 方过滤器(封闭源代码),所以除了降低视频分辨率和帧速率之外,实际上没有其他选项可以降低内存使用量。

于 2009-09-30T23:10:14.187 回答