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

Posted EasyNVR

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EasyNVR更新H265转H264模块内存增长且显示占用高如何解决?相关的知识,希望对你有一定的参考价值。

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

37.png

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

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

38.png

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

39.png

40.png

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

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

以上是关于EasyNVR更新H265转H264模块内存增长且显示占用高如何解决?的主要内容,如果未能解决你的问题,请参考以下文章

h264和h265多维度区别

如何分辨h264和h265

ubuntu下播放h264和h265工具vlc的安装使用

ubuntu下播放h264和h265工具vlc的安装使用

iOS利用ffmpeg 转码hevc到h264 ,以及 保存h265 h264流

H264和H265的nalu介绍