没钱买相机,程序员改用树莓派做延时视频!

都说摄影穷三代,单反毁一生,买不起单方的我们,想拍好的照片,想拍高质量的延时视频在以前真是一件让人奢望的事情。

没钱买相机,程序员改用树莓派做延时视频!

但随着现在智能手机的进步,至少照片我们是可以拍得美美的啦!但...延时视频呢?!虽然很多手机也有这个功能了,但!!!作为程序猿的我,依然想捣鼓捣鼓一下,发现,没有高配置手机的情况下,如果有个树莓派,也是可以化树莓派为单方哦(化腐朽为神奇)的!!看完倘若你有更好的方案和建议,欢迎评论一起探讨!

本文阅读建议具备一些相关知识:

- Linux基本命令行操作

- Java程序编写能力

没钱买相机,程序员改用树莓派做延时视频!

延时摄影又叫缩时摄影(英语:Time-lapse photography),又称缩时录影。是以一种将时间压缩的拍摄技术,目前也多叫作缩时录影。其拍摄的是一组照片或是视频,后期通过照片串联或是视频抽帧,把几分钟、几小时甚至是几天几年的过程压缩在一个较短的时间内以视频的方式播放。在一段延时摄影视频中,物体或者景物缓慢变化的过程被压缩到一个较短的时间内,呈现出平时用肉眼无法察觉的奇异精彩的景象。延时摄影可以认为是和高速摄影相反的一个过程。

延时摄影通常应用在拍摄城市风光、自然风景、天文现象、城市生活、建筑制造、生物演变等题材上。 而目前除了相机外,手机、行车记录仪也有此功能。

常常看到别人的延时拍摄作品

惊艳的同时感到羡慕有木有?

自己也想打造属于自己的延时摄影作品行不行?

可以的, 最少有以下几种方案:

  1. 专业设备级

  1. 专业单反相机

  2. 延时快门线

    这种方式比较贵, 好处是拍出来的质量相当不错, 专业玩家首选

  1. 手机拍摄

    用iphone就可以, 它有延时拍摄模式,好处是你只要有手机就可以玩

    缺点是有些贵, 用来拍小视频可以, 如果想拍个植物生长过程什么的, 估计没几人拍得了, 谁能1-2个月开着手机拍,再说手机存储空间估计都得爆了吧

  2. 树莓派+摄像头

今天要介绍的方式, 成本只需要300元左右, 而且是自己DIY, 想怎么拍都行, 拍1年都可以^o^,废话少说, 正文介绍制作方法

准备材料:

- 树莓派3B(或2以上的任意一款能接摄像头的型号)

- 树莓派兼容的摄像头一只

- 16GB的TF卡

- USB网卡(如果是树莓派3B的话就不用这个了)

- 盒子

没钱买相机,程序员改用树莓派做延时视频!

树莓派3B

没钱买相机,程序员改用树莓派做延时视频!

摄像头

没钱买相机,程序员改用树莓派做延时视频!

16GB的TF卡

没钱买相机,程序员改用树莓派做延时视频!

摄像头和树莓派3B连接

没钱买相机,程序员改用树莓派做延时视频!

装进盒子里

没钱买相机,程序员改用树莓派做延时视频!

有点范了不是?

系统烧录:

1.先去树莓派官网下载最新的ROM

https://www.raspberrypi.org/downloads/raspbian/

这里选的是: RASPBIAN JESSIE WITH DESKTOP

没钱买相机,程序员改用树莓派做延时视频!

日期是2017.7.5

下载后得到文件: 2017-07-05-raspbian-jessie.zip

解压后: 2017-07-05-raspbian-jessie.img

准备一个烧录软件, 以Windows为例

先下载Win32DiskImager安装并启动之

没钱买相机,程序员改用树莓派做延时视频!

选择刚解压好的img文件, 指定目标U盘(建议准备一张16GB的TF卡)

点击[Write],等待完成

3.新系统基本设置

把烧录好的TF卡插到树莓派中, 通电启动

第一次用树莓派的要注意一下, 简单起见, 建议准备一些设备以方便你用于配置树莓派的系统:

- HDMI的显示器

- 一第标准的HDMI线

- 一个USB键盘

把这些接上树莓派再给它上电启动

登录账号:pi

初始默认密码:raspberry

系统启动成功后, 你应该能看到类似这样的命令行:

没钱买相机,程序员改用树莓派做延时视频!

新系统第一次开机SSH服务默认没有启动, 需要接上键盘手工启动, 以方便以后远程登录:

sudo /etc/init.d/ssh start

为了防止以后重启后SSH服务又丢失, 把它加到自启命令中

sudo vi /etc/rc.local在编辑器exit 0这一行前面加上:sudo /etc/init.d/ssh start

成功后执行一次更新指令:

sudo apt-get updatesudo apt-get -y upgrade

因为国外的源较慢, 这一步要耗费不少时间,耐心等待完成

系统环境测试及准备

- 测试摄像头是否能正常工作

运行指令

raspistill -t 2000 -o /home/pi/Pictures/image.jpg

没钱买相机,程序员改用树莓派做延时视频!

没有报错,并能看到image.jpg表示成功了一半啦

- 测试系统自带的Java版本

java -version

没钱买相机,程序员改用树莓派做延时视频!

能看到版本号表示系统自带的JDK运行正常, 可以进行下一步

代码部分:

  1. 建个目录放程序

    mkdir -p /home/pi/link/com/timelapse

  2. 建个目录放拍摄的照片文件

    mkdir /home/pi/Pictures

  3. 写代码

    vi /home/pi/link/com/timelapse/TimeLapseShotSimple.java

没钱买相机,程序员改用树莓派做延时视频!

此处用了个IDE的界面展示代码, 后面附上真实代码

运行试试:

cd /home/pi/link

java com.timelapse.TimeLapseShotSimple

没钱买相机,程序员改用树莓派做延时视频!

运行效果

正式运行

上面的方法运行,如果把SSH退出的话自动拍摄就停了

所以还需要做2件事

- 做成后台运行模式

- 配置成开机自动启动拍摄

执行以下指令:

sudo vi /etc/rc.local在编辑器exit 0这一行前面加上:cd /home/pi/linkjava com.timelapse.TimeLapseShotSimple &

大功告成!

然后带上你的树莓派到处去耍吧

可以带到户外拍, 你只需要备多一个充电宝就可以运行

或放在阳台拍你的花花草草, 接上USB电源即可

拍完记得回来分享

(后记: 拍完得到的是一系列的照片, 还需要用软件合成真正的延时视频, 关注我, 后面会有文章讲到相关内容)

附上代码:

package com.timelapse;

public class TimeLapseShotSimple {

public static void main(String[] args){

System.out.println("TimeLapse starting...");

long fnum = 0;

while(true) {

try {

System.out.print("拍照...");

String cmd = "raspistill -t 2000 -o /home/pi/Pictures/pic_"+fnum+".jpg"; //拍照指令

Process pos = Runtime.getRuntime().exec(cmd);

pos.waitFor();

System.out.print(" .../home/pi/Pictures/pic_"+fnum+".jpg");

System.out.println(">>>等待10分钟");

fnum++;

Thread.sleep(10*60*1000); //等待10分钟

} catch (Exception e) {

e.printStackTrace();

}

}

}

}

*** 欢迎玩技术的互粉交流学习 ***


分享到:


相關文章: