ここまで準備ができたら、第7回で紹介したようなシェルスクリプトを作り、crontabで定期的に撮影してみましょう。「nano rpicamera.sh」でテキストエディタのnanoを起動させたら、以下のような内容を記述します。
#!/bin/bash DATE=$(date +"%Y-%m-%d_%H%M") raspistill -o /home/pi/rpicamera/$DATE.jpg
そしてrpicamera.shに実行権限を与えます。
$ mkdir rpicamera $ chmod +x rpicamera.sh
このスクリプトでちゃんとファイルが保存できるかテストします。
$ ./rpicamera.sh
これでディレクトリ「rpicamera」に「2019-xx-xx_xxxx.jpg」というファイルが作られていれば成功です。
テストしていて気づいたのですが、植物を撮影していると、一晩とはいえ成長したり動いたりするので興味深い画像が撮影できました。間隔を短くしてタイムラプスのように撮影するのも楽しいかもしれません。動画で保存するよりもファイルサイズが小さいので手軽に使えます。
raspistillでタイムラプス撮影をするには、「-tl」と「-t」のオプションを使います。-tlは撮影間隔の設定、-tはトータルの撮影時間です。いずれもミリ秒で指定します。例えば1分おきに1時間撮影するためには、以下のコマンドを入力します。
$ raspistill -o image%04d.jpg -tl 60000 -t 3600000 -w 1920 -h 1080
これは「image」で始まるファイル名の画像を「%04d」のファイル番号で、1分おきに1時間、1920×1080ピクセルのサイズで記録する、という意味になります。%04Dは、ファイル名を0001〜9999の4桁で連番を付けるための設定です。最後に「&」が付いているのは、バックグラウンドで処理させるためです。これを指定しないと他の作業ができなくなります。さらにこのままだと「/home/pi」のディレクトリ下に画像ファイルがたまっていくことになるので、
$ raspistill -o image%04d.jpg -tl 60000 -t 3600000 -w 1920 -h 1080 &
というようにディレクトリ(ここではtimelapse)を作成して、絶対パスでファイルの記録場所を指定した方が好ましいでしょう。
撮影が終了したら、JPEG形式のの静止画を動画に変換します。これには「ffmpeg」を使います。
$ ffmpeg -f image2 -i /home/pi/timelapse/image%04d.jpg -vcodec libx264 timelapse.mp4
ここでの意味は以下の通りです。
・-f image2:変換元の画像がJPEG形式で記録されている ・-i image%4d.jpg:入力する画像のファイル形式を指定します ・-vcodec libx264:エンコーダーをH.264に指定 ・-pix_fmt yuv420p:YUV420で画像を作成する ・timelapse.mp4:作成するファイル名
これでタイムラプス撮影した画像を動画にすることができました。監視用に使うのはもちろんですが、晴れた日の空に向けて雲などを撮影しても楽しめますよ。
Copyright © ITmedia, Inc. All Rights Reserved.
Special
PR