Android相机开发 延时摄影的一些实现思路
最近在做一款相机相关app,因为里面功能蛮多,所以除了基本的相机操作,其他的像慢动作、延时摄影、滤镜、直播这些都很费工夫,那么今天就来和大家探讨一下延时摄影的一些实现思路。
延时摄影,简单来讲就是将一段时间很长的视频,录制到很短的时间里,相对于慢动作来说,可以称之为快动作。看过人与自然之类节目的,想想里面的那些植物从发芽到枝繁叶茂,或者某个地方一年四季地貌变换的快速镜头就知道了。具体到手机上来说,比如我们每秒录制1帧,而录制出来的视频播放速率是每秒60帧,那么本来录制了一分钟的视频播放只有1秒钟,可以说他是加速了60倍。
下面就来讲一下一些实现思路,由于参考资料较少,如有更好实现方式还请赐教,按照安卓官网给出的提示,视频录制时有两个概念,一个capture rate和一个frame rate,即采样速率和帧速率,分别表示从相机获取数据的速率和播放时的速率,所以普通视频我们设置两个速率相同即可,而录制慢动作或者延时摄影时两者应该成一定的倍数关系,同时bit rate比特率也应做相应调整,那么具体实现的时候遇到的问题是,使用media codec和media format通过配置相关参数来实现的录制方式参数配置无效,也没有找到可参考的demo,而用mediarecorder实现的方式也有一定的局限,比如一些手机前置镜头不支持前面说的采样速率和帧速率不同,另外一个问题是,采样速率最少为1,也就是每秒最少一帧,这样也就限制了它的加速倍数不会太高,因为实际情况很可能几秒甚至几分钟才录一帧;后来研究发现可以使用的几种方式是:使用open cv 的 videowriter来写数据,速率可以自己把握,数据来源是相机callback的onpreviewframe中的data,因为open cv有配套的Java代码,所以操作并不难,缺点是需要导入opencv的so库和jar包,并且只能录制avi格式的视频,而这种视频体积较大,在安卓上操作也没有mp4格式好使,所以最后放弃了,考虑过的优化方式为为open cv加入h264编码的支持,即引入x264库并编写相关本地代码等,鉴于研究较少暂时放弃;另一种思路就是目前的做法,即仍然使用media codec和media format,但是参数配置和普通视频相同,只是为muxer添加数据的drainencorder方法的调用时间间隔和时间戳由我们自己控制,而不是像之前的每来一帧就填充,比如第一帧的时间为获取当前时间,后面的时间戳在此基础加一个固定值即可,至于数据来源,既可以是onpreviewframe,也可以是ondrawframe,或者其他,具体看自己的项目。
以上就是目前自己的一些实现思路,听说通过ffpemg也可以进行相关操作,暂时也没研究,各位安卓小伙伴如有更好的方法或实现思路也请不吝赐教,在此谢过!!!
Android相机开发 延时摄影的一些实现思路相关推荐
- camera (19)---Android 相机开发的基本流程
[Android 相机]Android 相机开发的基本流程 https://blog.csdn.net/bluewindtalker/article/details/54563910 相机开发现在有2 ...
- android 相机编程,Android相机开发系列
Android Camera Develop Series 简介 Android相机开发系列文章循序渐进,教你从一个没有任何功能的相机APP开始,逐步完善实现一般相机APP的各种功能,甚至还能拿来做图 ...
- Android相机开发和遇到的坑
转载请标明出处:http://blog.csdn.net/xx326664162/article/details/53350551 文章出自:薛瑄的博客 在Android相机开发实际开发过程中遇到了不 ...
- Android相机开发详解(一)
Android相机开发详解(一) 请支持原创,尊重原创,转载请注明出处:http://blog.csdn.net/kangweijian(来自kangweijian的csdn博客) Android相机 ...
- Android相机开发
文章目录 Android相机开发 申请权限 创建一个可以预览的界面 1.创建一个新工程 2.在新创建的工程中activity中布局文件 3.创建一个相机预览的view 继承SurfaceView 4. ...
- Android相机开发那些坑
最近我负责开发了一个跟Android相机有关的需求,新功能允许用户使用手机摄像头,快速拍摄特定尺寸(1:1或3:4)的照片,并支持在拍摄出的照片上做贴纸相关的操作.由于之前没有接触过Android相机 ...
- android 相机自动延时拍照软件,延时摄影大师app下载-延时摄影大师 安卓版v3.0-PC6安卓网...
延时摄影大师app是一款让您可以拍摄想要的静态美景图片的客户端应用,每次想拍摄一个画面可以需要等待很久的郝思嘉,用过延时摄影大师可以设置拍摄间隔时间,智能记录拍摄情景,让您拍摄出自己想要的画面. 功能 ...
- android+延迟拍摄,延时摄影很难吗? iphone拍+后期全搞定
手机也能拍出大片,还是目前高端大气的延时摄影,这听起来有点儿不可思议!但如果你的智能手机支持延时摄影拍摄,你还真可以用手机拍大片,甚至说后期都全靠手机来制作.不信你且看我娓娓道来. 在生物演变.天体运 ...
- android 三星调用拍照功能吗,Android 相机开发 三星拍照崩溃修改解决 详细
android 相机调用问题 三星系统4.0以上, 调用系统相机屏幕会强制切换为横屏 拍照完会切换为竖屏 点击保存回Activity 程序会直接崩溃 : 我理解的是 android系统在手机切换横竖屏 ...
最新文章
- matlab getstart,matlab帮助文件(matlab get start.pdf)
- ODBC访问EXCEL
- docker linux redis 安装
- 【C++】实现动态顺序表的PushBack(),PopBack(),PushFront(),PopFront(),Find(),Insert
- 置顶java[常用]-[语法]-[基础操作]
- sap.ui.viewModifications view extension
- ❤️六万字《SpringMVC框架介绍—从入门到高级》(建议收藏)❤️
- VSS 2005配置,很详细
- 深入浅出理解 COOKIE MAPPING
- TensorFlow 1.0已死,TensorFlow 2.0万岁
- asp.net 页面引入外部JS 在IE6下延迟加载报错,IE7+均没问题
- 活用锚点解决的问题(由一个简单应用想到的许多)
- 青岛高新职业学校计算机专业,“把灯光调亮 让我最后再好好看看你们” 青岛高新职业学校举行2021届毕业典礼...
- 再谈“学微积,用手机”
- PMP澳门机考3A学员考试攻略
- 工业互联网的内涵及其应用
- 51cto的火星语。
- js闭包深入理解(Closure)
- pandas 选取指定列
- 怎么进入BAT的研发部门?
热门文章
- Spring总结四:JDBC操作
- MongoDB启动shutting down with code:100处理
- sql 2008常用语法语句收集
- 51nod1423 最大二“货”问题
- 某技术总监认为处女座码农要重用,并给出3点原因,你认同么?
- vim : 删除不包含某字符的行
- PettingZoo:多智能体游戏环境库入门
- office2016和Visio2016安装冲突的解决办法(后附安装包链接)
- element-ui走马灯使用心得
- The artifact org.apache.commons:commons-io:jar:1.3.2 has been relocated to commons-io:commons-io:jar