ラスベリーパイのカメラアプリケーションmotionのインストールとセットアップを行います。
motionはリアル映像を配信しつつ、動きに変化があれば動画を保存してくれる、優れたアプリケーションです。
motionのインストールと設定
パッケージリストを新しくします
$sudo apt update⏎
パッケージを新しくします
$sudo apt upgrade⏎
続行しますか?[Y/n]と聞いてきたらY⏎
updateは1~2分、upgradeは10分弱でした。
カメラアプリmotionをインストールします。
$sudo apt install motion⏎
続行しますか?[Y/n]と聞いてきたらY⏎
5分ほどでインストールは完了しました。
エディタnanoでコンフィグファイルを編集し、motionの設定をします。デフォルトから変更するものと主なものについて記載します。
$sudo nano /etc/motion/motion.conf⏎
——————————————————————————————————————————
daemon on デーモン(バックグラウンド処理)として起動します。
※最終的にはonにしますが動作確認時はoffにした方がやりやすいかもです。
width 640 映像の解像度 幅
height 480 映像度の解像度 高さ
framerate 15 映像のフレームレートの最大値
threshold 1500 変化があったピクセル数の閾値。これを超えると変化があったとみなす
pre_capture 30 動体検知をする前の映像をどれだけ何フレームバッファリングするか?
post_capture 15 動体検知をする後の映像をどれだけ何フレームバッファリングするか?
event_gap 60 動体検知が終わってからevent_gap秒間以内に動体検知したら同じ映像ファイルにまとめる
movie_max_time 120 1つの映像ファイルの最大秒数
movie_output on 映像ファイルを保存するかどうか
movie_codec mp4 映像ファイルの種類
text_scale 2 映像に出力される文字を大きくする
movie_filename %Y%m%d-%H%M%S 映像ファイルは日付と時刻の名前になります
stream_motion on 映像の配信を行うかどうか?
stream_maxrate 15 映像配信の最大フレームレート
stream_localhost off 映像配信はローカルのみに限定するかどうか
——————————————————————————————————————————
(2022/7/29追記)
motionのバージョンアップにより項目名や設定内容などが変更されている場合があります
以下のドキュメントを参照
https://motion-project.github.io/motion_config.html
設定を終えたらCtrl+O⏎で書き込み、Ctrl+Xで終了です。
USBカメラをラズベリーパイに挿し、motionを起動します。
$sudo motion⏎
PCのブラウザでmotionが正常に動作していることを確認します。(xxx.xxx.xxx.xxxはカメラ・ラズベリーパイのIPアドレス)
http://xxx.xxx.xxx.xxx:8081
deamon onにしている場合のmotion停止方法
$sudo service motion stop⏎
deamon offにしている場合のmotion停止方法
Ctrl + C
調整が終わったらmotion.confでdeamon onになっていることを確認します。
ラズベリーパイが起動時に自動的にmotionが起動するようにします。
$sudo nano /etc/rc.local⏎
exit 0 より上に以下の1行を追加
motion &
Ctrl+O⏎で書き込み、Ctrl+Xで終了です。
再起動します。
$sudo reboot⏎
FTPソフトのインストールと動作確認
FTPソフトを使用してmotionが保存した映像ファイルをPCにダウンロードし、映像を確認します。
FTPソフトを新しくインストールする場合はWinSCPをお勧めします。
インストール方法や操作方法は下記公式サイトが詳しいです
https://winscp.net/eng/docs/lang:jp
motionの映像ファイルは以下のフォルダに格納されています。
/var/lib/motion/
正しく設定されていればmotion.configに従って作成された映像ファイル(yyyymmdd-HHMMSS.mp4)が作成されているはずです
10~15分で動作確認できると思います
crontabの設定
motionで映像ファイルを保存する設定を行いましたがこのまま運用していくと映像ファイルがたまる一方で最終的にはSDカードに空きが無くなります。
そのような事態を避けるために定期的にファイルを削除するようにします。
スケジューラーにcrontabを使用します。
【基本的書式】
分 時 日 月 曜日 実行コマンドorスクリプト
これを使い、毎晩3時に10日以上経ったファイルを削除するようにします。
$crontab -e⏎
エディタを選択するように促されます。1のnanoを選択します。
Choose 1-3 [1]: 1⏎
↓キーで最終行まで移動し、以下の1行を追加します。
00 3 * * * sudo find /var/lib/motion -name ‘*.mp4′ -mtime +10 -delete⏎
スペースを開けることに注意してください。 00△3△*△*△*△sudo△find…
保存し、終了します
Ctrl + O⏎
Ctrl + X⏎
設定を確認します。
$crontab -l⏎
5分もかからないでしょう