背景
motionとは、カメラの画像を保存したり配信したりできるプログラムです。motionを使ってカメラの画像を配信するのに、ところどころ詰まったので、備忘録を兼ねて方法を共有します。
全体像
この順番に説明します。- 使ったもの
- カメラの設定
- motionのインストール
- motionの設定
- 動作確認
- 自動起動設定
使ったもの
- Raspberry Pi一式
2017/11にリリースされたRaspbian(streatch)で動作を確認しました。 - カメラ
USBカメラでもRaspberry Pi用のカメラでも、motionで扱えます。
Raspberry Pi用のカメラを使う場合は、カメラの有効化とv4l2デバイスとしてのマウント設定が必要です。
カメラの設定
USBカメラの場合
Raspberry Piに接続してください。Raspberry Pi用カメラの場合
- カメラをRaspberry Piに接続します。
- 下記の手順でカメラを有効にします。
1. 下記のコマンドを入力します。sudo raspi-config
2. Interfaces options を選択します。
3. Camera を選択します。
4. Yes を選択します。
5. raspi-configを終了します。 - 下記のコマンドを入力して、v4l2デバイスとしてカメラをマウントします。
sudo modprobe bcm2835-v4l2
motionのインストール
下記のコマンドでインストールできます。sudo apt update sudo apt upgrade sudo apt install motion
下記のコマンドでバージョンを確認できます。
2018.03.18に確認したときのバージョンは4.0でした。
motion -h
motionの設定
設定ファイルに対して、下記の変更を行いました。
/etc/motion/motion.conf
# これがonだと、画像が残ります。 output_pictures off # これがonだと、動画が残ります。 ffmpeg_output_movies off # これがonだと、Raspberry Piの中でしかストリームを見れません。 stream_localhost off
出力が多くないのでそれほど問題にならないとは思いますが、ファイルの増加を少しでも減らしたい場合は、「logfile」の行をコメントアウトすると、ログが出力されなくなります。
参考:
Motion Guide
Raspberry Pi に Webカメラ2(再設定)
Motion の導入手順 ~ 指定した内容、パラメータの意味について
[Motion-user] Unknown config option "sdl_threadnr"
動作確認
motionを実行します。sudo motion
Raspberry Piが割り当てられているipの8081ポートにアクセスすると、ストリームが見れます。
(ipアドレスはRaspberry Pi上でifconfigを実行すると確認できます。)
自分の試したwifi環境だと、320x240px 2fpsの動画を4秒くらいのタイムラグで表示できました。
自動起動設定
Raspberry Pi用カメラ
「bcm2835-v4l2」を/etc/modulesに追加します。これによって、Raspberry Pi起動時にRaspberry Pi用カメラが自走的にv4l2デバイスとしてマウントされます。
/etc/modules
bcm2835-v4l2
motion
下記のような記述をrc.localのexitより上に記述すると、Raspberry Piを起動したらmotionが動くようになります。
/etc/rc.local
motoin &
まとめ
motionを利用してカメラの画像を配信できました。共有したい情報は以上です。
変更履歴
2016.11.15自動起動設定を追加しました。
2017.12.29
「motionの設定」の説明文に違和感を感じたので、修正しました。
2018.03.18
「背景」「使ったもの」「カメラの設定」を追加しました。
「logfile」の出力が少なくて問題にならなさそうだったので、logfileのコメントアウトを補助的な説明に変更しました。
「sdl_threadnr 0」の設定がmotion4.0ではデフォルトでコメントアウトされていたので、記述を削除しました。
記事作成時はaptコマンドでインストールできるmotionのバージョンが3.2でしたが、確認したら4.0がインストールできるようになっていたので、Raspiカメラを使うにはビルドが必要だという記述を削除しました。
「/etc/default/motion」に記述を追加しても自動起動しなかったので、rc.localに記述を追加する方式に変更しました。
0 件のコメント :
コメントを投稿