文档章节

Android Camera previewFrame 提高 fps

拉风的道长
 拉风的道长
发布于 2016/07/04 11:35
字数 224
阅读 2736
收藏 1

/**
* http://my.oschina.net/lifj/blog/705104
**/

在做Camera预览的时候,通过PreviewFrame()方法获取数据,但是发现fps很低,一直在10~12fps徘徊。

当然,有人推荐使用setPreviewCallbackWithBuffer。试了一下,fps没有明显的提升。虽然没有提升,但还是加上吧,避免camera频繁的创建/销毁内存,引起gc。

 

在stack上搜索,发现一个4.0以后的方法(应该可以了,谁还在开发4.0之前的版本?)

setRecordingHint

添加之后fps明显上升,一直到最高支持fps。

cam = Camera.open();
			cam.setPreviewDisplay(holder);
			Camera.Parameters parameters = cam.getParameters();
			//new
			//3句全加,30fps
			parameters.setRecordingHint(true);//去掉这句,12fps
//			parameters.setAutoExposureLock(true);//去掉这句,30fps
//	        parameters.setAutoWhiteBalanceLock(true);//去掉这句,30fps
	        
			parameters.setFlashMode("off"); // 无闪光灯
			parameters.setWhiteBalance(Camera.Parameters.WHITE_BALANCE_AUTO);
			parameters.setSceneMode(Camera.Parameters.SCENE_MODE_AUTO);
			parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
			parameters.setPreviewFormat(PreviewFromat_NV21);
			// 这两个属性 如果这两个属性设置的和真实手机的不一样时,就会报错
			parameters.setPictureSize(320, 240);
			parameters.setPreviewSize(320, 240);
			cam.setParameters(parameters);

 

 

© 著作权归作者所有

共有 人打赏支持
拉风的道长
粉丝 54
博文 110
码字总数 55629
作品 0
昌平
程序员
私信 提问
加载中

评论(7)

湖广午王
湖广午王

引用来自“湖广午王”的评论

setRecordingHint是提高MediaRecoder的启动速度,减小输出差错。。。

引用来自“拉风的道长”的评论

嗯,但是确实起到了提高fps的作用呢。
理论上这个方法没效果,我试了下,好像也没什么用,囧。搞了几天了,发现光线强弱对相机fps影响很高,摄像头对光源基本可以达到摄像头支持的最高帧率,把摄像头遮住光线,就掉的非常明显了。请教了下做整机的朋友,说是Hal层的3A算法决定的。关闭自动曝光补偿,光线影响可以去除,但是得到的图片非常暗,需要自己去处理,好像也不太可取。还在继续崩溃中,看看有没有其他办法
拉风的道长
拉风的道长

引用来自“湖广午王”的评论

setRecordingHint是提高MediaRecoder的启动速度,减小输出差错。。。
嗯,但是确实起到了提高fps的作用呢。
湖广午王
湖广午王
setRecordingHint是提高MediaRecoder的启动速度,减小输出差错。。。
拉风的道长
拉风的道长

引用来自“爱笑的女孩”的评论

并不知道在哪个文件调用
并不知道怎么回答你
爱笑的女孩
爱笑的女孩
并不知道在哪个文件调用
拉风的道长
拉风的道长

引用来自“爱笑的女孩”的评论

道长,我的一直在10--15之间波动,FAE给我kernel固定成30fps,但是工模里看到的还是15,有没有办法提升到30fps,因为我要送测CTS。
parameters.setRecordingHint(true); 调用这句啊。。博客里面写的很清楚了。
爱笑的女孩
爱笑的女孩
道长,我的一直在10--15之间波动,FAE给我kernel固定成30fps,但是工模里看到的还是15,有没有办法提升到30fps,因为我要送测CTS。
Android仿微信小视频录制功能

Android仿微信小视频录制功能 作为开博的第一篇文章,正好最近在学习Android视频录制功能,所以决定趁热记录下来。 关于Android视频录制功能的实现流程以及相关API的介绍网上有很多,这里就不...

再见杰克
2016/03/09
0
0
Android Camera 架构简析1

前言 最近整体看了一下Android Camera 部分代码,从Framework的Camera 应用框架到 Hardware的Camera HAL 再到 Kernel的 Camera Driver。把对Camera部分的学习整理成笔记,方便理解。 2. 概述...

Jerikc
2012/09/03
0
0
Android Camera 模块分析(三)

第三部分 Camera的主要实现分析   3。1 JAVA程序部分   在packages/apps/Camera/src/com/android/camera/ 目录的Camera。java文件中,包含了对Camera的调用   在Camera。java中包含对包...

Jerikc
2012/08/31
0
0
Android游戏框架AndEngine使用入门

AndEngine是一款以OpenGLES方式进行画面渲染的2D游戏引擎,可以运行在支持Android 1.6及以上版本的系统当中。应该说,相较前文介绍的Libgdx引擎,AndEngine拥有更多的游戏组件与扩展功能。并...

鉴客
2011/03/08
20.2K
11
Android Camera(三)

把预览类放到布局中 Camera的预览类,如上文所示的示例,必须要跟用户界面控件一起放到一个Activity的布局中,以便拍照或录像。本段向你显示如果构建一个基本的用于预览的Activity布局。 下面...

长平狐
2012/10/16
6.8K
0

没有更多内容

加载失败,请刷新页面

加载更多

《大话数据结构》读后总结(四)

一、算法 1、算法效率的度量方法 1.1 事后统计方法 通过设计好的测试程序和数据,利用计算机计时器对不同算法编制的程序的运行时间进行比较,从而确定算法效率的高低。该方法具有很大缺陷,不...

徐曙辉
41分钟前
1
0
Android 整体设计及背后意义

阿里妹导读:现实工作中经常可以听到这样的说法:框架的升级带来协议性能的提升、编程模式的变革带来业务的飞跃...... 姑且不论这些表述是否有问题,实际上如果系统地看待事物整体,可能会有...

阿里云云栖社区
43分钟前
2
0
一文纵览EMAS 到底内含多少阿里核心技术能力

EMAS的整体定位是阿里巴巴移动技术对外输出的主窗口,沉淀了阿里巴巴近10年在移动互联网技术架构上的积累以及在一系列垂直场景中所实践的核心技术能力。一方面,EMAS希望为广大开发者提供安全...

阿里云官方博客
今天
2
0
Prometheus简介

Prometheus是什么? Prometheus(普罗米修斯)是一套最初在SoundCloud上构建的开源监视和告警系统 。 特征 普罗米修斯的主要特点是: 具有由度量名称和键/值对标识的时间序列数据的多维数据模...

阿dai学长
今天
2
0
Android 动画Animation

动画分为视图动画(view animation)和属性动画(property animation),视图动画又分为帧动画和补间动画 视图动画控件(iv)点击事件(OnClickListener接口)触发位置在原位置 1.帧动画(Fra...

Coding缘
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部