ラズパイでタイムラプラス撮影

ラズパイで、タイムラプス撮影および動画作成をおこなったみました。

タイムラプラス撮影とは?

一定時間毎に撮影した写真をつなぎ合わせてパラパラ漫画のような動画にしたものです。そのようなことができる動画を「タイムラプス動画」、またそのような動画を撮影することを「タイムラプス撮影」といい、微速度撮影、インターバル動画撮影などと呼ばれいるそうです。

では、実際にラズパイでやってみましょう!

タイムラプラス撮影の全体構成

以下の内容を定期的に実行する。
1.定期的に写真を撮影するシェルコマンドをcronに登録
2.写真を撮影してディスクに保存
3.保存した写真からラプラス動画に変換

たとえば、植物を1時間に1回決まった時間に撮影して、1か月分をラプラス動画に変換すると、その期間の成長過程が確認できます。

まずは、タイムラプラス撮影を行うために以下のパッケージをインストールします。

・fswebcam : USBカメラ撮影
・feh : 画像確認
・ffmpeg : タイムラプス動画への変換

以下のコマンドで必要なパッケージをインストールします。

$ sudo apt-get install fswebcam feh ffmpeg -y

次にカメラ撮影用のシェルスクリプト(camera.sh)を作成します。

実行すると、”撮影日時.jpg“というファイル名で撮影画像が保存されます。

<camera.sh>
fswebcam -r 1920x1080 --no-banner -D 2 /home/user1/camera_timelapse /Pictures/date +%Y%m%d%H%M%S.jpg

オプション説明:
•-r : 撮影解像度サイズを指定
•–no-banner : 撮影情報テキストの表示無効
•-D : ディレイ値、2秒後に撮影

上で作ったシェルスクリプトを定期的に実行するのでcrontabに登録します。

$crontab –e

以下の内容を追加すると、1分毎にcamera.shが実行されます

*/1 * * * * /home/user1/camera_timelapse/camera.sh

cronの書式は以下です。

分 時 日 月 曜日 ‘実行したいコマンドまたはスクリプト’

参考までに、以下が記載例です。

【参考】crontabの記載例
毎日6時にプログラムを実行する
00 6 * * * python /home/hoge/script1.py
毎時10分にプログラムを実行する
10 * * * * python /home/hoge/script2.py
15分毎にプログラムを実行する
*/15 * * * * python /home/hoge/script2.py
毎月20日10:00にプログラムを実行する
00 10 20 * * python /home/hoge/script3.py
毎週月曜日10:00にプログラムを実行する
00 10 * * 1 python /home/hoge/script4.py
cronでプログラムが動かない場合
2分毎にプログラムを実行し、エラーログを確認する
*/2 * * * * python /home/hoge/script5.py 2> /home/hoge/script5.log

最後にタイムラプラス動画を作成します。

撮影日時のファイル名で画像を保存したのですが、名前が連番になってないと動画変換ができないようなので、一括でリネームします。

find . -name '*.jpg' | sort -n | awk 'BEGIN{ a=0 }{ printf "mv \"%s\" %03d.jpg\n", $0,a++}' | bash

以下のようなファイル名になります。

000.jpg
001.jpg
002.jpg
・・・

あとは、以下のコマンドで撮影した画像をタイムラプラス動画に変換します。

ffmpeg -framerate 30 -i %03d.jpg -vcodec libx264 -pix_fmt yuv420p -r 60 out.mp4

実際にラプラス動画を作成してみました。

何かそれっぽい映像になっていますね。

実際に作ってみたタイムラプラス動画

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA