微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > 拍摄视频过程中偶尔会提示“系 统内存不足”,自动停止录像.

拍摄视频过程中偶尔会提示“系 统内存不足”,自动停止录像.

时间:10-02 整理:3721RD 点击:
[DESCRIPTION]
拍摄视频过程中SD卡还剩2G内存,空间中足,但出现提示“系统内存不足”,自动停止录像。停止录像后,界面显示“正在保存”较长时间后拍摄视频才能保存成功.
[SOLUTION]
出现这类问题大多都是T-Card的读写速度较慢引起的。:
1、首先在main_log搜索如下红色的关键字MPEG4Writer: left_mem_size,可以得到如下的结果。
02-28 14:18:54.804 6981 7318 D MPEG4Writer: left_mem_size 0
02-28 14:18:55.477 6981 7320 D MPEG4Writer: left_mem_size 1141000
02-28 14:18:55.801 6981 7318 D MPEG4Writer: left_mem_size 0
02-28 14:18:59.576 6981 7320 D MPEG4Writer: left_mem_size 2282000
……
……
02-28 14:20:09.854 6981 7318 D MPEG4Writer: left_mem_size 54768000
02-28 14:20:10.232 6981 7320 D MPEG4Writer: left_mem_size 55909000
left_mem_size这个值表示当前存储在DRAM,还没有写到T-Card的数据量,单位是Byte,可以看到遂渐增加的(当然也有减小的情况,因为T-Card的读写速度不稳定),但大趋势是增加的(因为来不急写到T-Card,就一直缓存在DRAM中)。
2、因为DRAM的大小是有限的,而且android中是许多Application共享DRAM,所以我们就设置了一个上限(60MB),当DRAM中没有写入T-Card的数据量达到60MB时,就通知Application停止录像。对应的log如下:
02-28 14:20:30.419 6981 7316 W MPEG4Writer: Video buffer size reaches 60M, auto stop to avoid low memory issue
3、停止录像后,界面显示正在保存,较长时间后拍摄视频才能保存成功
关于这个问题的原因其实跟上面是一样的,因为在Stop Video Recording的时候还有60MB左右的数据没有写到TCard,所以需要时间来写入T-Card.
这个部分可以体现在下面这个log中,133 chunks的最后才写到T-Card。1 Chunk你可以理解为是1s的数据量。
02-28 14:21:22.574 6981 7316 D MPEG4Writer: 133 chunks are written in the last batch
因为最后还有许多数据要写入T-Card,所以Saving的时候就会比较久也就是正常的了。
[Solution]:
针对这种T-Card读写速度太慢,那么解决方案大致上有这几种:
1、更换速度更快的T-Card再进行验证。
--> 另当前提示“系统内存不足”,你们也可以修改为“T-Card速度太慢”之类的,终端用户会比较容易理解。
2、将Bitrate降低。
--> 这个会影响录像的画质,而且降太低的话,录出来的视频会有许多的马赛克。
3、将Frame Rate降低。
--> 这个会影响流畅度,如果降太低的话,录出来的视频,会卡卡的。最好不要低于24fps.
4、动态的降低Bitrate & Frame Rate (这个方案ALPS.JB2.MP上才Ready)
--> 这个会出现的现象是:刚开始的视频画质很好,画面也很流畅,但到后面的画面就会变差,流畅度也会下降,这也很难保证客户不抱怨。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top