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

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

创新互联建站是创新、创意、研发型一体的综合型网站建设公司,自成立以来公司不断探索创新,始终坚持为客户提供满意周到的服务,在本地打下了良好的口碑,在过去的十载时间我们累计服务了上千家以及全国政企客户,如成都塑料袋等企业单位,完善的项目管理流程,严格把控项目进度与质量监控加上过硬的技术实力获得客户的一致称誉。

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

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

问题分析

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

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

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

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

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


网站名称:音视频提取功能组件EasyStreamingServer读取本地文件出现内存泄露问题该如何修复
网页网址:http://azwzsj.com/article/pjgcss.html