You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LibVlcSharp同时拉取两路不同分辨率RTSP视频流时内存占用持续增长致OOM问题求助

LibVlcSharp同时拉取两路不同分辨率RTSP视频流时内存占用持续增长致OOM问题求助

各位大佬好,我最近在开发WPF应用时碰到了一个棘手的内存泄漏问题,想请教下有没有同行遇到过并解决了的:

我现在要做的是同时拉取两路RTSP视频流,分别在两个窗口显示,每路流只做一次订阅。因为LibVlcSharp.WPF自带的VideoView组件不支持overlay管理,所以我改用了MediaPlayer的SetVideoFormatCallbacks和SetVideoCallbacks方法来自己处理WPF端的图像渲染逻辑。

目前遇到的核心问题是:当两路流的分辨率不同时(比如一路是1080p 25fps,另一路是720p 30fps),应用的内存占用会持续缓慢增长,用任务管理器观察的话,内存会一直涨到饱和状态,最后直接抛出OutOfMemoryException。但如果两路流分辨率相同,哪怕帧率不一样,完全不会出现这个问题。而且内存增长的速度还和两路流的分辨率差值正相关:差得小的话每小时涨几MB,差得多的话每小时能飙几百MB。

补充下我的环境信息:我用的是LibVlcSharp 3.9.3版本,libvlc.dll是3.0.21.0版本。两路流都是H264编码,输入源是RTSP URL。

我自己已经排查过的点:

  • 跟踪了自身代码里的内存分配和释放逻辑,确认只有在流初始化阶段才会分配内存,没有发现明显的泄漏点;
  • 翻了LibVlcSharp相关的讨论线程,没看到有人提过这个特定场景的问题。

有没有人碰到过这种因两路不同分辨率RTSP流导致的内存泄漏问题,并且成功稳住了内存占用的?求支招!

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 09:03:04