- 監視モニター
- 「ついてこい!」命令の実行
などができるようになりそうです。
猫の尾行とかも。
ストリーミング(ライブ)配信もできるので、Ras2-D2搭載カメラの画像をPCやスマホでみることができるはずです。
留守宅の監視とか、猫の行動チェックとかできそうですね。
ドアホン代わりに使うこともできるかもしれません。
さて、インストールの方法や設定は、「ラズベリー・パイで作る手のひらLinuxパソコン」(CQ出版社)の内容に準拠します。
まずはパッケージのインストールです。
$ sudo apt-get install motion
この辺は、慣れてきましたね。
motionは動体検知機能を持ったモニタリング・プログラムといったようなものなのですが、初期設定のままだと起動した途端に動体を検知し始め、動くものがあるとスナップ写真をバシバシ取り始めてしまうようです。
それではSDカードがすぐ埋まってしまうので、動くものがあっても写真を取らない設定に変更します。
$ sudo nano /etc/motion/motion.conf
「motion.conf」がmotionの設定ファイルです。nanoでファイルを開いたら、次の該当箇所を赤字で表したセッティングに変更します。
daemon on
「on」にすることで、motion起動時に「デーモン・モード」で実行されるようになります。
(「おまえを蝋人形にしてやろうか!」とは叫びません)
バックグラウンドで処理を実行する、という感じですね。
「ノン・デーモン・モード」で実行すると、いま何をやっているかを画面表示するようになります。
(ほかの処理ができません)
ffmpeg_cap_new off
これで、「動画のキャプチャ」をオフにします。「on」だと、動体検知時に動画を記録します。
保存領域を圧迫しますので、動画キャプチャは必要なときのみ行った方がよさそうです。
output_normal off
こちらは、「静止画のキャプチャ」をオフにする設定です。
webcam_localhost off
この設定をオフにすることで、PC等の外部機器からmotionが捉えている画面を閲覧することができるようになります。つまりストリーミングを受信することができます。
これらの設定項目は、大きなファイルの離れた場所に分散していますので、「Ctrl+W」押し下げによる検索機能を利用して、該当箇所を探すと便利です。
そのほかにも、設定を変えておいた方が良い項目があります。
control_localhost off
これにより、外部から接続中のPCなどからmotionの設定内容を変更することができるようになります。デフォルトのオン状態だと、RPi上でしか設定を変更できません。
control_authentication ID:PW
上は、外部から設定変更する場合のログイン認証設定です。セキュリティー上の理由で、IDとパスワードを設定しておいた方が良いでしょう。上の例文では、「ID」としている部分に任意の名前(ID)を入れ、「PW」としている箇所にパスワードを登録します。
これは必要な変更かどうか、よく分からないのですが、
ffmpeg_video_codec mpeg4
動画エンコードの方式を、デフォルトの「swf」から「mpeg4」に変更しました。
お馴染みの方式の方が、いろいろ都合が良いのではということで。
そして、実は次が一番はまったポイントなのですが、
webcam_maxrate 30
こうしておくと、ストリーミング配信時に幸せになれます。
「webcam_maxrate」は、ストリーミング時のフレーム・レート(上限)を規定する項目なのですが、デフォルトでは「1」に設定されており、「1秒間に1画面」しか更新されません。
それでは当然、「カクカク」になってしまって紙芝居状態です。とても動画配信とはいえません。
「1」から「100」の範囲で設定できますが、フレーム・レートを上げすぎると当然通信容量を圧迫しますので、適当なところで押さえておいた方が良いでしょう。人間の目には一秒間24コマあれば動画に見えるという法則があるので、「30」くらいで十分ではないかと思います。
そしてデーモン・モードでの起動のために、
$ sudo mkdir /var/run/motion
を実行して、プロセスID記録用ディレクトリを作っておきます。こうしないとエラーになるようです。
さらに、別の設定ファイルもいじります。
$ sudo nano /etc/default/motion
設定ファイル「motion」の中で、下記の箇所を変更します。
start_motion_daemon=yes
これでようやく、motionをデーモン・モードで起動することができるようになりました。
motionをデーモン・モードで起動するには、
$ sudo service motion start
終了するには、
$ sudo service motion stop
と打ち込むだけでOKです。
ちなみに、ノン・デーモン・モードで実行するには、
$ sudo motion -n
とします。
動作の検証を行う際などは、ノン・デーモン・モードで実行すると状態がわかりやすいですね。
そして、事務連絡はまだ続きます。
システム起動時に自動的にmotionを起動するには、
$ sudo update-rc.d motion defaults
とし、それを解除するには、
$ sudo update-rc.d motion remove
とします。打ち込むのもしんどくなってきました。
長くてすみません。
Macユーザーなら?Safariを使って、
をブラウザで開けばストリーミング動画が見られるようです。
(「xxx.xxx.xxx.xxx」は、RPiに割り当てられているローカルアドレスです)
chromeでは開けませんでした。
解決策を探すと、下のページにありました。
動画表示用のhtmlファイルを作成して、それを開けばよいということですね。
htmlファイルの中身は、下記になります。
<html><body>
<img src="http://raspberrypi.local:8081">
</body></html>
html職人の方は、ファンシーにページを飾り付けることも可能でしょうね。
とりあえず、上記の記述だけでchromeでも動画を見ることができました。
コチョナナバさん、有益な情報をありがとうございました。
webcam_maxrateに関する情報は、下記のサイトから入手しました。
あらためて情報の公開にお礼を申し上げます。
こちらのサイトでは、外部インターネットからのストリーミング動画アクセス、というかRPiへのアクセスを実現されています。そこも参考にしたいですね。
さて、最後にmotion.confの内容をPCなど外部機器から変更するには、
に接続します。「xxx.xxx.xxx.xxx」は、ここでもRPiのローカルアドレスです。
画面に非常に簡素なメニューが出ますので、「config -> list」という項目から変更したい設定項目を探してパラメターを変更します。「set」で設定を登録。
変更後は、「<- back」でメニューに戻り、「write」をクリックして変更内容をサーバー上のconfigファイルに反映させます。「action -> restart」でmotionを再起動します。
筆者が試したときは、restartを実行しなかったためか、うまく設定変更できませんでした。
結局最後は、RPi上でmotion.configを編集して設定変更しました。
motion.configで設定できる項目の解説は、こちらにあります。
すごい量ですが、いろいろできるってことでしょうね。
これがフリーって、ありがたすぎます。
これはすべて個人のお勉強である。