264_監視カメラ(動体検知・メール通知まで)をRaspberryPiで★

監視カメラ(動体検知・メール通知まで)をRaspberryPiで構築
http://netbuffalo.doorblog.jp/archives/3942942.html
を参考
—————
Motionのインストール
—————
Motionのインストール
$ sudo apt-get install motion
Motionの設定
$ sudo vi /etc/motion/motion.conf
デーモンとして起動させたいのでdaemonをon(★★★←今はoffのまま)
daemon on
デーモンの場合、設定ファイルにprocess_id_fileとして定義されているプロセスID記録用のディレクトリも作成。
$ sudo mkdir /var/run/motion
(デーモンとして起動した場合は$ sudo /etc/init.d/motion stopで停止)
フレームレートの設定
1秒間に撮影するフレーム数を変更。標準では2、ここでは30fpsに変更
# Maximum number of frames to be captured per second.
# Valid range: 2-100. Default: 100 (almost no limit).
framerate 30
イメージ・サイズ
# Image width (pixels). Valid range: Camera dependent
width 320
# Image height (pixels). Valid range: Camera dependent
height 240
動体検知しきい値
Motionは撮影した画像を比較し、変化したピクセル数を基準に動体検知します。
標準では1500ですが、60にして感度を上げます。
# Event Gap is the seconds of no motion detection that triggers the end of an event.
# An event is defined as a series of motion images taken within a short timeframe.
# Recommended value is 60 seconds (Default). The value -1 is allowed and disables
# events causing all Motion to be written to one single movie file and no pre_capture.
# If set to 0, motion is running in gapless mode. Movies don’t have gaps anymore. An
# event ends right after no more motion is detected and post_capture is over.
event_gap 60
コーデックの指定
ffmpeg_video_codecで動画ファイルのフォーマットを指定。
標準ではswfですが、今回はmpeg4(作成されるファイルはavi形式)に変更。
# Codec to used by ffmpeg for the video compression.
# Timelapse mpegs are always made in mpeg1 format independent from this option.
# Supported formats are: mpeg1 (ffmpeg-0.4.8 only), mpeg4 (default), and msmpeg4.
# mpeg1 – gives you files with extension .mpg
# mpeg4 or msmpeg4 – gives you files with extension .avi
# msmpeg4 is recommended for use with Windows Media Player because
# it requires no installation of codec on the Windows client.
# swf – gives you a flash film with extension .swf
# flv – gives you a flash video with extension .flv
# ffv1 – FF video codec 1 for Lossless Encoding ( experimental )
# mov – QuickTime ( testing )
?
ffmpeg_video_codec mpeg4
ライブカメラ、管理ポートの設定
webcam_port(8081)、control_port(8080)パラメータで、配信(Live Webcam)及び管理用のWebサーバが起動。
(そのままにしておきます。)
録画終了イベント発生時のアクション実行
(・・・別途・・・)
motionの動作確認
$ sudo motion
target_dirで指定した/tmp/motionにイメージ・ファイルが作成されます。
—————
muttとGmailを使ってコマンドからメール送信
—————
muttをインストール。
$ sudo apt-get install mutt
mutt用の設定ファイルを作成
$ vi /path/to/mutt.conf
メールを送信する為の最低限の設定は次の通り
set charset=”utf-8″
set send_charset=”us-ascii:iso-2022-jp”
set from = “h.yoshihara1204@gmail.com”
set realname = “監視カメラくま吉”
set smtp_url = “smtp://h.yoshihara1204@smtp.gmail.com:587/”
set smtp_pass = “A**********0”
設定ファイルが準備できたら次のコマンドで動作確認してみましょう。
$ echo “Hello world” | mutt -F /path/to/mutt.conf -s “監視カメラくま吉(mail direct)” h.yoshihara1204@gmail.com
指定したアドレスにメールが届けばOK。
(おおお、、メール来たよ。監視カメラくま吉くん!!)
motionから呼び出すシェル(on_movie_end.sh)を次のような内容で用意…と。
場所は、
/path/to/on_movie_end.sh
に。
==================================
#!/bin/sh
AVI_PATH=$1
AVI_DIR=`dirname $AVI_PATH`
MP4_NAME=”MOTION-`date +’%Y%m%d-%H%M%S’`.mp4″
MP4_PATH=$AVI_DIR/$MP4_NAME
EMAIL_TO=通知・送信先@gmail.com
EMAIL_SUB=”監視カメラくま吉くん”
EMAIL_BODY=”動体を検知しました”
MUTT_CONF=/path/to/mutt.conf
# convert to mp4
#ffmpeg -i $AVI_PATH -f mp4 -s 320×240 -vcodec mpeg4 -b 3000k -acodec aac -ab 128k $MP4_PATH > /dev/null 2>&1
if [ $? -eq 0 ]; then
# send email by mutt & gmail
# echo $EMAIL_BODY | mutt -F $MUTT_CONF -s $EMAIL_SUB -a $MP4_PATH — $EMAIL_TO
echo “Hello world” | mutt -F /path/to/mutt.conf -s “監視カメラくま吉(mail direct)” h.yoshihara1204@gmail.com
  if [ $? -eq 0 ]; then
# clean up old motion files (over 60 minnutes)
#find $AVI_DIR -type f -mmin +60 | xargs rm -rf
fi
fi
==================================
準備完了。。
$ sudo motion
で監視・通知カメラを起動。。。
はい、ダメ。。。メール来ない。
まず、変換(avi->mpeg4)が失敗??
直前コマンドがMP4の変換やってるので、それが上手くできなくてメールも飛ばない?かも。。。と。
メールはアラームだけにしてみる。
少し待たないと(直前コマンドの正常終了$?=0を見ているから、その1?分後あたりにメールが飛ぶらしい。。)
(図1)動いてる、監視カメラにくまお君がうつされたはず・・・
(図2)ファイルも保存された・・・と
(図3)このevent終了を見ている、、ようだ・・
(図4)メール通知だけにしたら来た!
 
以上