前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android相机延时摄影是如何实现的

Android相机延时摄影是如何实现的

作者头像
雪月清
发布2022-11-19 09:57:52
1.3K0
发布2022-11-19 09:57:52
举报
文章被收录于专栏:雪月清的随笔

关于Android相机的一些高阶能力,在前面的文章中我们聊到了如何拍摄RAW图,depth图和实现录制慢动作

Android 手机如何拍摄RAW图

使用Camera2获取depth图像

Android手机如何实现慢动作录制

本篇文章我们来简单聊聊如何实现延时摄影这个功能

什么是延时摄影

延时摄影又叫缩时摄影(Time-lapse)、间隔摄影或者定时定格摄影,是一种将画面拍摄频率设定在远低于一般观看连续画面所需要频率的摄影技术。

简单说就是以更小的帧率录制,常规视频帧率(24fps或30fps)进行播放,这样就达到了将几分钟甚至几天压缩在一个较短时间的效果(细心的同学可以发现延时摄影和慢动作刚好相反)

(延时摄影效果,素材来自网络,侵删~)

Android中实现延时摄影

参考手机系统相机,延时摄影为10X的效果

(录制到第10s时,视频文件才1s)

抓取延时摄影模式下的配置参数,标红的两个参数就是实现延时摄影的关键

代码语言:javascript
复制
mime = "video/hevc"
width = 1920
height = 1080
stride = 1920
slice-height = 1080
color-format = 2130708361
time-lapse-fps = 3.000000
bitrate = 10000000
bitrate-mode = 1
frame-rate = 30
i-frame-interval = 1

实现录制延时摄影10X的效果,我们需要设置3个fps

  • 相机帧率,常规设置即可
  • frame-rate:30
  • time-lapse-fps:frame-rate / 10 = 3.0

frame-rate和time-lapse-fps的设置通过MediaRecorder提供的接口实现

setVideoFrameRate设置frame-rate

setCaptureRate设置time-lapse-fps

从文档注释中可以看到,延时摄影和慢动作模式一样,都是只有视频流而没有音频

setCaptureRate内部设置的两个参数

代码语言:javascript
复制
public void setCaptureRate(double fps) {
    setParameter("time-lapse-enable=1");
    setParameter("time-lapse-fps=" + fps);
}

~~END~~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-09-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 雪月清的随笔 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档