音视频学习-exceeded mem limit: ActiveHard 50 MB (fatal)

一、现象

  ReplayKit2 适配中 UPLOAD进程被系统杀掉

  日志中显示原因:exceeded mem limit: ActiveHard 50 MB (fatal)

二、内存占用分析

  1)系统回调YUV数据(NV12类型)给到UPLOAD进程,回调方法运行在多线程中

- (void)processSampleBuffer:(CMSampleBufferRef)sampleBuffer withType:(RPSampleBufferType)sampleBufferType

  上述在多线程中带来两个问题:

  第一个是一帧YUV图像在大屏手机上占用较大内存,比如iphone6+手机上,1242x2208x1.5 = 3.92MB;

  此外因为多线程回调,如果直接将每帧图像都进行处理,可能进程中积累的内存较多,会直接内系统干掉

  第二个是 多线程回调带来的一个时序的问题,系统给到的屏幕数据方向、尺寸不可控,如果对图像进行旋转,那么低端机型上面缩放旋转性能是否可接受

三、解决思路

  将回调的YUV数据放在一个队列中,在一个线程中循环取YUV的数据,然后进行编码推流

  

时间: 2024-10-09 00:33:19

音视频学习-exceeded mem limit: ActiveHard 50 MB (fatal)的相关文章

Android音视频学习第7章:使用OpenSL ES进行音频解码

/* * *这里使用了transcode-1.1.7对wav文件进行解码,然后使用opensl es进行播放 * */ //用到的变量和结构体 WAV wav; //wav文件指针 SLObjectItf engineObject; //引擎对象 SLEngineItf engineInterface; //引擎接口 SLObjectItf outputMixObject; //混音器 SLObjectItf audioPlayerObject; //播放器对象 SLAndroidSimpleB

音视频学习--H264解析渲染

一.H264文件获取 下载一段MP4文件,通过FFMPEG转换成MP4 ffmpeg -i Gravity.mp4 -vcodec h264 out_2.264 二.通过解析H264成帧,然后刷新 这里的环境是 MacOS  + Python2.7 + openCV2 #!/usr/local/bin/python2.7 # -*- coding: utf-8 -*- __author__ = 'qqvipfunction' import sys import cv2 import os imp

音视频学习-直播助手内存优化

一.iOS进程中使用的内存 1)内存的类型 Physical Memory Wired-The amount of memory being used by the operating system. Physical Memory Active-The amount of memory being used by processes other than the operating system. Physical Memory Inactive-The amount of memory th

【音视频连载-007】基础学习篇-SDL 播放 PCM 音频文件(上)

音视频学习入门技术文章连载: 技术开发故事会连载 [音视频连载-001]基础学习篇-SDL 介绍以及工程配置 [音视频连载-002]基础学习篇-SDL 创建窗口并显示颜色 [音视频连载-003]基础学习篇-SDL 消息循环和事件响应 [音视频连载-004]基础学习篇-SDL 加载图片并显示 [音视频连载-005]基础学习篇-SDL 加载 YUV 文件并显示 [音视频连载-006]基础学习篇-SDL 播放 YUV 视频文件]) 在前面的文章中已经能够利用 SDL 去播放 YUV 视频文件了,接下来

各种音视频编解码学习详解

各种音视频编解码学习详解 媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析.应用开发.释放license收费等等.最近因为项目的关系,需要理清媒体的codec,比较搞的是,在豆丁网上看运营商的规范 标准,同一运营商同样的业务在不同文档中不同的要求,而且有些要求就我看来应当是历史的延续,也就是现在已经很少采用了.所以豆丁上看不出所以然,从 wiki上查.中文的wiki信息量有限,很短,而wiki的英文内容内多,删减版

Python爬虫学习教程,批量爬取下载抖音视频

这篇文章主要为大家详细介绍了python批量爬取下载抖音视频,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 这篇文章主要为大家详细介绍了python批量爬取下载抖音视频,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 这篇文章主要为大家详细介绍了python批量爬取下载抖音视频,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 项目源码展示: 1 ''' 2 在学习过程中有什么不懂得可以加我的 3 python学习交流扣扣qun,934109170 4 群里有不错的学习教程.开发工具与电子

从零开始学习音视频编程技术(三) 开发环境搭建(Qt4.86手动设置环境,主要就是设置g++和qmake,比较透彻,附下载链接)

1.先下载安装Qt 我们使用的版本是4.8. 可以自行百度下载也可以从下面的网盘地址下载: Qt库和编译器下载: 链接:http://pan.baidu.com/s/1hrUxLIG 密码:0181 Qt Creator下载: 链接:http://pan.baidu.com/s/1miPgpfi 密码:1hb6 下载后得到这三个文件: 其中 MinGW-gcc440_1.zip 是mingw编译器 qt-win-opensource-4.8.2-mingw.exe 是Qt的库 qt-creato

音视频开发学习——转知乎答案

著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:姚冬链接:http://www.zhihu.com/question/31156766/answer/54645514来源:知乎 我们先假设某人在音视频方面是零基础,也没学过任何数字信号处理相关知识,数学基础基本是高中水准,但是熟悉 C/C++ 开发,至少熟悉某一个平台下的编译调试IDE. 着重研究两个开源项目 ffmpeg 和 webRTC,主要看ffmpeg的视频部分和webRTC的音频部分. 首先,从视频解码入手,这

Android 音视频开发学习思路

Android 音视频开发这块目前的确没有比较系统的教程或者书籍,网上的博客文章也都是比较零散的.只能通过一点点的学习和积累把这块的知识串联积累起来.在学习的过程中,遇到不懂的地方,要及时的去google或者请教大神,不要半知半解的过去. 初级入门篇: 在 Android 平台绘制一张图片,使用至少 3 种不同的 API,ImageView,SurfaceView,自定义 View 在 Android 平台使用 AudioRecord 和 AudioTrack API 完成音频 PCM 数据的采