本篇文章为大家展示了音视频提取功能组件EasyStreamingServer读取本地文件出现内存泄露问题该如何修复,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
EasyStreamingServer是一种支持文件,RTSP,RTMP,HTTP等各种流媒体协议的音视频提取功能组件,支持H.264,H.265,PCM,AAC等各种音视频编码格式输出,支持Windows,Linux ,Android,iOS,ARM等各种平台。
当TSINGSEE青犀视频研发人员通过EasyStreamingServer读取本地文件时,出现了内存泄露问题。
使用EasyStreamingServer读取本地文件时,我们看到内存一直在增长,对比拉取网络流,如RTSP流,内存消耗相对稳定,未出现内存泄露。
在拉取本地文件时,内存如下
由上可以看到,内存消耗一直在增长。但是拉RTSP流就未出现如此增长的情况。
从代码逻辑来看,文件与RTSP流不同的是,使用了av_bitstream_filter_filter,问题也就是出现在此地方。av_bitstream_filter_filter会重新分配内存,需要在使用后及时释放,否则就会出现内存泄露问题。
通过以上分析,我们可以推断是在EasyStreamingClient中使用av_bitstream_filter_filter后未及时释放内存导致的内存泄漏。
我们可以通过增加如下代码解决内存泄露问题:
if (m_vbsf_h364_toannexb != NULL) { av_free(packet.data); packet.data = NULL; }
再次测试后,我们没有再发现内存泄漏的问题,所以在此可以给大家提醒,如果使用av_bitstream_filter_filter,则一定要及时释放内存。
上述内容就是音视频提取功能组件EasyStreamingServer读取本地文件出现内存泄露问题该如何修复,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。