引き続き、インストールと設定の手順について説明します。
Ubuntu や Xubuntu など Debian系のディストリビューションは必要なパッケージは標準リポジトリで提供されていますが、本稿では CentOS6.4 での導入方法について紹介します。
2013年 6月11日現在のバージョンは 3.2.12 でした。以下のソースコードをダウンロードします。
motion-3.2.12.tar.gz
コンパイルには以下の画像、動画ライブラリが必要です。
CentOS6 の公式リポジトリに ffmpeg は提供されていないので、rpmforge リポジトリを事前に登録しておく必要があります。(説明は割愛)また x264 コーデックに必要な yasm アセンブラの入手先には epelリポジトリを使用しました。
続いて motion 本体をインストールします。任意のディレクトリに展開、コンパイルします。
*******************************
Configure status
motion 3.2.12
*******************************
OS : Linux
pthread Support: Yes
jpeg Support: Yes
V4L included: Yes
V4L2 supported: Yes
FFmpeg Support: Yes
MYSQL Support: Yes
PostgreSQL Support: Yes
上記のようにコンパイルできれば make してインストールします。
$ make
$ sudo make install
以上でインストールは終了です。
motionの設定は /usr/local/etc/motion.conf で行ないます。motion-dist.conf がサンプルとして用意されているので、motion.conf という名前で複製して設定を行ないます。
接続するカメラが1台の場合は motion.conf のみで設定を行ないますが、2台以上の複数のカメラを制御する場合は、カメラ毎に設定ファイルを作成し、motion.conf にそれらの設定ファイルに パスを記述(thread パラメータで指定)する形になります。(後述)
motion.conf に何も記述されていない場合は、ドキュメント に記述されているデフォルト値が適用されます。また、thread で指定されたそれぞれのカメラ毎の設定ファイルと motion.conf に同じパラメータで異なる指定がある場合は、カメラ毎の設定ファイルが優先されます。
ですので、複数のカメラを制御したい場合は、それぞれのカメラに共通する基本的な動作を motion.conf 側で指定して、個別に設定を行ないたい項目だけを thread ファイルに記載する。という手順でシステムを構築していきます。
これらの設定ファイルに指定可能なパラメータとデフォルト値については以下のドキュメントを参照して下さい。
指定がない場合は、デフォルト値が適用されますので、全てを記述する必要がありませんが、先ずは、最低限、動作確認が出来る様に「動体検知でカメラが捉えた映像に変化があった場合のみ録画する」という基本条件でシステムを構築することにします。
ベースのシステムが完成して動作が確認出来れば、更に何か出来る事はないか、ドキュメントにある指定可能なパラメータに目を通して、目的に応じて設定を詰めていくのがベターです。以下に設定例を示します。
ここでは 2台のWebカメラを使用して、映像に何か変化があった場合に映像を記録するシステムを例に、ポイントとなりそうなパラメータを設定します。
接続するWebカメラが1台の場合は適宜置き換えて下さい。パラメータの内容については次のページで説明します。
# Moitonの動作に関するオプション
daemon off
# キャプチャデバイスに関するオプション
norm 1
width 640
height 352
framerate 12
# 動体検知に関するオプション
threshold 2000
gap 60
# 画像の出力、品質等に関するオプション
output_normal off
quality 75
ppm off
# FFMPEG 関連のオプション
ffmpeg_cap_new on
ffmpeg_bps 500000
ffmpeg_video_codec mpeg4
# イメージに表示する情報に関するオプション
locate on
text_double on
# 出力するファイルの保存先、ファイル名のルール
snapshot_filename %v-%Y%m%d%H%M%S-snapshot
jpeg_filename %v-%Y%m%d%H%M%S-%q
movie_filename %v-%Y%m%d%H%M%S
timelapse_filename %Y%m%d-timelapse
# GUI(ブラウザ)設定ツールに関する設定
control_port 8080
control_localhost on
control_authentication 任意のID:パスワード
# スレッドファイルのフルパス(2台以上のWebカメラを使用する場合)
thread /usr/local/etc/thread1.conf
thread /usr/local/etc/thread2.conf
ここで使用している2台のウェブカメラはどちらも同じ Logicool HD Webcam C270 なので、カメラデバイスに関するオプションは motion.conf に記載しました。異なる設定をしたい場合は、thread.conf にも同じパラメータの記述があれば、thread.conf で記述された内容が優先されます。
### 以降はカメラ毎の設定ファイルで設定すべきパラメータ。接続するカメラが1台の場合は スレッドファイルは不要なので motion.conf に記述します。
# スナップショット機能の有効化、インターバル設定
snapshot_interval 0
# 出力先の指定
target_dir /Public/WebCam1
# MotionJPEG 映像Live配信に関する設定
webcam_port 8081
webcam_quality 100
webcam_motion on
webcam_maxrate 15
# 動体検出時のアクション
quiet on
on_event_start /hogehoge/hoge1.sh
on_event_end /hogehoge/hoge2.sh
# スナップショット機能の有効化、インターバル設定
snapshot_interval 0
# 出力先の指定
target_dir /Public/WebCam2
# MotionJPEG 映像Live配信に関する設定
webcam_port 8082
webcam_quality 100
webcam_motion on
webcam_maxrate 15
# 動体検出時のアクション
quiet on
on_event_start /hogehoge/hoge3.sh
on_event_end /hogehoge/hoge4.sh
基本的にこれらの設定で運用可能ですが、期待通りに動作するか、パラメータを調整しては Motion の再起動を繰り返すことになります。続きます。