Raspberry Piに接続したWebCamから映像を取得可能なパッケージはいくつか有名なものが存在するようだが、今回はMotionという動体検知を行うことのできるパッケージを用いて、WebCamの映像を取得してみる。
パッケージのインストール
apt-getから取得することができる
sudo apt-get install motion
設定
今回はMotionをデーモン起動させて常時稼働させる。設定ファイルは以下のように変更した。
# Image width width 640 # Image height height 480 # Maximum number of frames to be captured per second. # フレーム数を大きくしすぎるとRaspberry Piで処理しきれなくなる framerate 3 # Output 'normal' pictures when motion is detected # 動体検知時に画像を出力しない output_pictures off # Use ffmpeg to encode movies in realtime # 動体検知時に動画を出力しない ffmpeg_output_movies off # Make automated snapshot every N seconds snapshot_interval 1 # Locate and draw a box around the moving object. # 動体マーカ locate_motion_mode on # Target base directory for pictures and films target_dir /var/www/html # File path for snapshots (jpeg or ppm) relative to target_dir snapshot_filename snapshot # Restrict stream connections to localhost only # ローカルホスト以外からのアクセスを許可する stream_localhost off # Restrict control connections to localhost only # ローカルホスト以外からのアクセスを許可する webcontrol_localhost off
サービスの開始
USBカメラを繋ぎ、認識されていることを確認する。
lsusb Bus 001 Device 015: ID 0c45:62e0 Microdia MSI Starcam Racer
設定ができたらサービスを開始する。でも正常にサービス開始しない。
sudo service motion start Apr 20 18:42:55 raspberrypi motion[1410]: Not starting motion daemon, disabled via /etc/default/motion ... (warning).
/etc/default/motionも変更しないといけないらしい。
sudo vi /etc/default/motion # set to 'yes' to enable the motion daemon start_motion_daemon=yes
再度、サービス開始。
今度はちゃんと開始された。
sudo service motion start
以下のエラーが発生する場合は、画像の出力先のパーミッションに問題ある場合があるので、パーミッションを変更する。
Apr 20 19:28:15 raspberrypi motion[7929]: [1] [ERR] [ALL] put_picture: Can't write picture to file /var/www/html/snapshot.jpg - check access rights to target directory Thread is going to finish due to this fatal error: Apr 20 19:28:15 raspberrypi motion[7929]: [1] [ERR] [EVT] event_image_snapshot: Could not create symbolic link [snapshot.jpg]: