使用树莓派摄像头延时摄像

发布时间:2016-08-23 10:39:07 阅读:1192次

转:http://www.rs-online.com/designspark/electronics/chn/blog/time-lapse-photography-with-the-raspberry-pi-camera

http://www.52pi.net/archives/1689

avconv -r 24 -i image%04d.jpg -r 24 -vcodec libx264 -vf scale=800:480 timelapse.mp4
mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4:aspect=16/9:vbitrate=8000000 -vf scale=1920:1080 -o timelapse.avi -mf type=jpeg:fps=24 mf://@pics.list

title

使用新型树莓派摄像头以及树莓派型号 A 和电池组的简单延时摄像项目

我很早就想尝试延时摄像,因为种种原因一直未能如愿,当我有幸得到一个试制的树莓派摄像头时,没有任何理由可以拒绝!

配置 Raspbian

由于需要访问网络才能配置软件,所以使用了树莓派型号 B,其实本来可以通过 USB 网络适配器使用型号 A。

在 32GB SD 卡上安装 Raspbian 之后,我按照常规流程将软件包升级到最新版,并升级了固件

为了启用对摄像头的支持,需要向 /boot/config.txt  添加以下两行命令:

start_file=start_x.elf

fixup_file=fixup_x.dat

我计划使用电池组为树莓派和摄像头的运行供电,为了降低功耗,我还通过添加以下命令尝试对 Pi 降频:

arm_freq=300

但是这样做对功耗的影响似乎微乎其微,各种报告表明,降低 ARM 内核的频率基本没有好处。

硬件安装

title

树莓派摄像头是手机上使用的一种 500 万像素定焦摄像头,通过一根柔性扁平电缆连接到树莓派的 CSI 端口。

使用型号 A 是因为它的功耗低,并且安放外壳小巧紧凑,连接摄像头的电缆通过 RJ45 插口孔伸到外部。

title

拍摄脚本

命令 /opt/vc/bin/raspistill 用于拍摄静态图片,我发现使用默认选项需要约 6 秒钟才能完成拍摄。

我编写了一个简单的脚本循环运行 raspistill:

ROLL=$(cat /var/tlcam/series)

SAVEDIR=/var/tlcam/stills

while [ true ]; do

filename=$ROLL-$(date -u +"%d%m%Y_%H%M-%S").jpg

/opt/vc/bin/raspistill -o $SAVEDIR/$filename

sleep 4;

done;

每次 Pi 启动时,初始化脚本都会读取 /var/tlcam/series 中存储的数字,并使其加 1。随后执行上述脚本,每 10 秒左右拍摄一张图片。

图片文件名由一个数字(取决于变量 $ROLL,能够快速确定来自哪一个引导序列)、一个连字符和日期时间组成。型号 A 没有实时时钟,因此日期和时间不准确,但这没太大关系。

功耗

title

摄像头闲置时的电流消耗测得为 117 毫安,工作时升高到约 286 毫安。

使用 3200 毫安/小时电池组时,根据计算应该可以轻松工作 12 小时。

首次运行

完成脚本测试、功耗测量和电池组充电之后,就可以开始首次运行了。树莓派和电池组放置在窗台上,摄像头用胶带粘在窗户上。

title

第二天早上取出 SD 卡,将 5518 个JPEG 文件复制到笔记本电脑。

使用静态图片编辑视频

结果发现最后三个图片文件为空白,很可能是因为在电池没电时,图片内容还没有离开文件系统缓存 (RAM)。

删除空文件之后,对剩余 5515 个文件创建了一个列表:

$ls *.jpg > stills.txt

随后使用 mencoder 软件创建 HD (1080p) MPEG-4 视频文件,以便上传到 YouTube

$mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4:aspect=16/9:vbitrate=8000000 -vf scale=1920:1080 -o tlcam.avi -mf type=jpeg:fps=24 mf://@stills.txt
从视频中可以发现,星期六早上一开始天气相当昏暗!但是傍晚时候变得明亮起来,在视频中持续了约 2 分钟。

摄像头刚刚运行了 15 个多小时,由于电池组是首次使用,可能尚未达到满电量。

改进空间

这次拍摄尝试主要涉及拍摄频率和以下 raspistill 选项:

  • 图片尺寸,例如设置为最终视频使用的尺寸
  • JPEG 图片质量
  • 相机曝光模式,例如夜间模式
  • 内置延时功能

其中一些选项可能会改进图片质量,其他一些选项可能有助于降低功耗。

对视频编码时,mencoder 选项也有大量尝试空间,或许还可以在编码之前进行静态图片的处理(例如使用 ImageMagick)。

结论

树莓派和摄像头共同为延时拍摄试验提供了一个极其灵活的平台,在接下来的几个月里,我相信我们会发现各种各样新奇有趣又创意十足的应用!

apt-get install mencoder

root@raspberrypi:/home/pi/PiMotion/2016/0821# ls *.jpg>pic.txt
root@raspberrypi:/home/pi/PiMotion/2016/0821# screen mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4:aspect=16/9:vbitrate=8000000 -vf scale=1920:1080 -o tlcam.avi -mf type=jpeg:fps=24 mf://@pic.txt

如有问题,可以QQ搜索群1028468525加入群聊,欢迎一起研究技术

支付宝 微信

有疑问联系站长,请联系QQ:QQ咨询

转载请注明:使用树莓派摄像头延时摄像 出自老鄢博客 | 欢迎分享