音视频提取功能组件EasyStreamingServer读取本地文件出现内存泄露问题该如何修复

本篇文章为大家展示了音视频提取功能组件EasyStreamingServer读取本地文件出现内存泄露问题该如何修复,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

EasyStreamingServer是一种支持文件,RTSP,RTMP,HTTP等各种流媒体协议的音视频提取功能组件,支持H.264,H.265,PCM,AAC等各种音视频编码格式输出,支持Windows,Linux ,Android,iOS,ARM等各种平台。

当TSINGSEE青犀视频研发人员通过EasyStreamingServer读取本地文件时,出现了内存泄露问题。

问题分析

使用EasyStreamingServer读取本地文件时,我们看到内存一直在增长,对比拉取网络流,如RTSP流,内存消耗相对稳定,未出现内存泄露。

在拉取本地文件时,内存如下

音视频提取功能组件EasyStreamingServer读取本地文件出现内存泄露问题该如何修复  ios 第1张

音视频提取功能组件EasyStreamingServer读取本地文件出现内存泄露问题该如何修复  ios 第2张

由上可以看到,内存消耗一直在增长。但是拉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读取本地文件出现内存泄露问题该如何修复,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注蜗牛博客行业资讯频道。

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

评论

有免费节点资源,我们会通知你!加入纸飞机订阅群

×
天气预报查看日历分享网页手机扫码留言评论Telegram