kuroの覚え書き

96の個人的覚え書き

ラズパイでタイムラプスカメラ

研究絡みで植物のタイムラプスムービーをつくりたいという話があったので、それならWEBカメラとラズパイでちょちょいでしょ、ということになってやってみた。

まずは参考にしたサイトから
RaspberryPiとUSBWebカメラでタイムラプス | Foolean – 備忘録風雑記ブログ
ラズパイでタイムラプス撮影 - Qiita
このへん。

カメラは手持ちにあったUSBカメラを使用。
https://www.amazon.co.jp/gp/product/B008AO4KXG/ref=oh_aui_detailpage_o01_s00?ie=UTF8&psc=1
3年ほど前に買ったカメラ。

Raspberry Piは3+を使用。
OSはraspbian

使用ソフトは

$ sudo apt-get install fswebcam libav-tools -y

でインストール。

USBカメラを差したら

$ fswebcam -F 10 ./tmp.jpg

これで画像が撮れることを確認。
ちなみにfswebcamのオプションは

-r 1920x1080 解像度
-d 5 ディレイ(カメラに露出やフォーカスの調節を自動でさせるための時間を与える)
-F 10
--jpeg 85 (JPEGで85%画質で撮るとき)
--line-colour '#FF000000' --banner-colour '#FF000000'  タイムスタンプなどの文字色など

ほかにもあると思う。

今回は

#!/bin/bash
FILENAME=`date +%Y%m%d%H%M%S`
fswebcam -r 1280x720 --line-colour '#FF000000' --banner-colour '#FF000000' -F 1$

こんな感じのスクリプトを書いてcamera.shとした。

これをcronで定時実行もしくは間隔を決めて実行すれば画像がどんどん溜まっていく。

$ crontab -e
00 * * * * * /home/pi/camera.sh

こうすれば毎時0分に定時撮影となる。

*/10 * * * * /home/pi/camera.sh

こうしておけば10分間隔で撮れる。

ある程度画像が溜まったらパラパラ漫画の要領でムービーに仕立てる。
今回は

#!/bin/sh

find ./img/ -name '*.jpg' | sort -n | awk 'BEGIN{ a=0 }{ printf "mv \"%s\" ./img/%05d.jpg\n", $0,a++}' | bash
avconv -y -f image2 -r 10 -i ./img/%05d.jpg -aspect 16:9 -s '1280x720' ./img/output.mp4

こういうスクリプトを作ってみた。
名前が連番でないといかんらしいので、名前を変更し、それをoutput.mp4という名前のムービーにする。

特に困ったこともなくあっけなく完成。


しいていうなら、このままではフレーミングを決めるために何度もスクリプトを実行して撮ってみて、画像確認してまた撮って・・・と繰り返さなければならない点かな。

これはmotionもインストールしておいてストリーミングで画像を見れるようにしておくのが良いかもしれない。
k-kuro.hatenadiary.jp


RaspberryPiでWebカメラを使ってストリーミング動画を配信させてみた - 水菜巻のメモ的ななにか。
こっちのほうがお手軽かな。

最後にこのタイムラプスカメラシステムをいくつもクローンで作りたいので
SDカードの複製(for Mac) | Make.
SDカードのまるごとコピー