Webカメラでインターバル撮影

Webカメラでインターバル撮影を行ってみました。

f:id:haru-komugi:20150629165842j:plain

最初は一眼レフのインターバル機能で撮影をしていたのですが、そういえば、linuxであればcronとWebカメラを使えば同様のことができるのでは? ってことでやってみました。

最終的にこんな感じの動画を作ることができます。www.youtube.com

#1日中撮影すると結構おもしろいかも

静止画撮影もできる fswebcam のインストール

$ sudo apt-get install fswebcam

作業ディレクトの作成とキャプチャー用シェルの新規作成

$ mkdir /var/www/captureImage
$ sudo chmod 777 /var/www/captureImage
$ sudo emacs /var/www/captureImage/captureImage.sh

記述する内容はこちら
出力するファイル名あたりはお好みで

#!/bin/bash

DATE=$(date +"%Y%m%d%H%M%S")

fswebcam -r 640x480 --no-title --no-banner --no-shadow /var/www/captureImage/$DATE.jpg

実行権限の付加

$ sudo chmod +x /var/www/captureImage/captureImage.sh

クローンで定期実行(1分ごとに)

$ crontab -e
*/1 * * * * /var/www/captureImage/captureImage.sh

#emacs派な自分にはviが立ち上がるので面倒ですが、そこは気合で

これで1分ごとにカメラからの静止画が /var/www/captureImage/ ディレクトリに追加されていきます。
あとは convert や ffmpeg などで動画化してあげれば変化の様子が分かるかと思います。

ffmpegのインストールと静止画から動画

通常通りインストールすると面倒らしいので motion からffmpegをインストール

$ sudo apt-get -y install motion

ffmpeg用にキャプチャーした画像ファイルのリンクを連番で作成(これめんどい)

$ c=1 ; for i in ??????????????.jpg ; do ln $i `printf %d $c`.jpg ; c=$((c+1)) ; done

静止画から動画に変換

$ sudo ffmpeg -f image2 -r 15 -i %d.jpg -r 15 -an -vcodec libx264 -pix_fmt yuv420p video.mp4

参考リンク

d.hatena.ne.jp
qiita.com
qiita.com
www21.atwiki.jp
www.server-memo.net