最近在做一款相机相关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相机开发 延时摄影的一些实现思路相关推荐

  1. camera (19)---Android 相机开发的基本流程

    [Android 相机]Android 相机开发的基本流程 https://blog.csdn.net/bluewindtalker/article/details/54563910 相机开发现在有2 ...

  2. android 相机编程,Android相机开发系列

    Android Camera Develop Series 简介 Android相机开发系列文章循序渐进,教你从一个没有任何功能的相机APP开始,逐步完善实现一般相机APP的各种功能,甚至还能拿来做图 ...

  3. Android相机开发和遇到的坑

    转载请标明出处:http://blog.csdn.net/xx326664162/article/details/53350551 文章出自:薛瑄的博客 在Android相机开发实际开发过程中遇到了不 ...

  4. Android相机开发详解(一)

    Android相机开发详解(一) 请支持原创,尊重原创,转载请注明出处:http://blog.csdn.net/kangweijian(来自kangweijian的csdn博客) Android相机 ...

  5. Android相机开发

    文章目录 Android相机开发 申请权限 创建一个可以预览的界面 1.创建一个新工程 2.在新创建的工程中activity中布局文件 3.创建一个相机预览的view 继承SurfaceView 4. ...

  6. Android相机开发那些坑

    最近我负责开发了一个跟Android相机有关的需求,新功能允许用户使用手机摄像头,快速拍摄特定尺寸(1:1或3:4)的照片,并支持在拍摄出的照片上做贴纸相关的操作.由于之前没有接触过Android相机 ...

  7. android 相机自动延时拍照软件,延时摄影大师app下载-延时摄影大师 安卓版v3.0-PC6安卓网...

    延时摄影大师app是一款让您可以拍摄想要的静态美景图片的客户端应用,每次想拍摄一个画面可以需要等待很久的郝思嘉,用过延时摄影大师可以设置拍摄间隔时间,智能记录拍摄情景,让您拍摄出自己想要的画面. 功能 ...

  8. android+延迟拍摄,延时摄影很难吗? iphone拍+后期全搞定

    手机也能拍出大片,还是目前高端大气的延时摄影,这听起来有点儿不可思议!但如果你的智能手机支持延时摄影拍摄,你还真可以用手机拍大片,甚至说后期都全靠手机来制作.不信你且看我娓娓道来. 在生物演变.天体运 ...

  9. android 三星调用拍照功能吗,Android 相机开发 三星拍照崩溃修改解决 详细

    android 相机调用问题 三星系统4.0以上, 调用系统相机屏幕会强制切换为横屏 拍照完会切换为竖屏 点击保存回Activity 程序会直接崩溃 : 我理解的是 android系统在手机切换横竖屏 ...

最新文章

  1. matlab getstart,matlab帮助文件(matlab get start.pdf)
  2. ODBC访问EXCEL
  3. docker linux redis 安装
  4. 【C++】实现动态顺序表的PushBack(),PopBack(),PushFront(),PopFront(),Find(),Insert
  5. 置顶java[常用]-[语法]-[基础操作]
  6. sap.ui.viewModifications view extension
  7. ❤️六万字《SpringMVC框架介绍—从入门到高级》(建议收藏)❤️
  8. VSS 2005配置,很详细
  9. 深入浅出理解 COOKIE MAPPING
  10. TensorFlow 1.0已死,TensorFlow 2.0万岁
  11. asp.net 页面引入外部JS 在IE6下延迟加载报错,IE7+均没问题
  12. 活用锚点解决的问题(由一个简单应用想到的许多)
  13. 青岛高新职业学校计算机专业,“把灯光调亮 让我最后再好好看看你们” 青岛高新职业学校举行2021届毕业典礼...
  14. 再谈“学微积,用手机”
  15. PMP澳门机考3A学员考试攻略
  16. 工业互联网的内涵及其应用
  17. 51cto的火星语。
  18. js闭包深入理解(Closure)
  19. pandas 选取指定列
  20. 怎么进入BAT的研发部门?

热门文章

  1. Spring总结四:JDBC操作
  2. MongoDB启动shutting down with code:100处理
  3. sql 2008常用语法语句收集
  4. 51nod1423 最大二“货”问题
  5. 某技术总监认为处女座码农要重用,并给出3点原因,你认同么?
  6. vim : 删除不包含某字符的行
  7. PettingZoo:多智能体游戏环境库入门
  8. office2016和Visio2016安装冲突的解决办法(后附安装包链接)
  9. element-ui走马灯使用心得
  10. The artifact org.apache.commons:commons-io:jar:1.3.2 has been relocated to commons-io:commons-io:jar