沒錢買相機,程式設計師改用樹莓派做延時視頻!

都說攝影窮三代,單反毀一生,買不起單方的我們,想拍好的照片,想拍高質量的延時視頻在以前真是一件讓人奢望的事情。

沒錢買相機,程序員改用樹莓派做延時視頻!

但隨著現在智能手機的進步,至少照片我們是可以拍得美美的啦!但...延時視頻呢?!雖然很多手機也有這個功能了,但!!!作為程序猿的我,依然想搗鼓搗鼓一下,發現,沒有高配置手機的情況下,如果有個樹莓派,也是可以化樹莓派為單方哦(化腐朽為神奇)的!!看完倘若你有更好的方案和建議,歡迎評論一起探討!

本文閱讀建議具備一些相關知識:

- 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();

}

}

}

}

*** 歡迎玩技術的互粉交流學習 ***


分享到:


相關文章: