EasyNVR更新H265转H264模块内存增长且显示占用高如何解决?

在视频传输平台中,由于数据较大,不可避免会出现内存增长的问题,在EasyNVR视频平台中,由于支持了H265视频的播放,内存占用会较小,因此在大多情况下我们推荐用户采用H265编码格式播放视频,然而在一些需要用到H264格式的项目中,更新H265转H264模块后,EasyNVR的内存使用量会随着时间一直增长,且显示占用非常高。

在转码模块的函数中,可能存在部分操作没有正确的释放使用的内存,导致内存随着运行时间一直增长。

在仔细阅读转码模块代码后发现,在开始转码时CGO模块会malloc出一块AV_frame的堆内存,但在使用后并没有调用free接口。因此导致此块内存一直没有释放,长时间运行会导致内存一直增长。

因为H265转码模块的动态库,开始转码函数是异步调用在调用成功后,主动free掉malloc出的堆内存即可。

与图一使用内存对比,第一个NVR程序是没有增加free函数的,第二个是增加的,内存占用有明显区别。

关于内存占用,我们之前也解决过EasyGBS内的相关问题:EasyGBS快照拉流频繁占带宽及内存怎么解决。大家有兴趣可以了解一下。更多视频相关解决方案,欢迎联系我们咨询。

posted on 2021-07-09 14:09  EasyNVR  阅读(412)  评论(0编辑  收藏  举报