2016年10月30日日曜日

raspberry piでmotionを動かして、USBカメラの画像をストリーミング配信する方法



詰まりどころがあったので、メモを残しつつ方法を共有します。

全体像

この順番に説明します。
  1. motionのインストール
  2. motionの設定
  3. 動作確認
  4. 自動起動設定

motionのインストール

motionはカメラの出力を配信できるプログラムです。
下記のコマンドでver3.2がインストールできます。
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install motion

ラズパイカメラを使いたい場合は、ver3.4以上のmotionが要るらしく、ソースからコンパイルのが必要なようです。

参考:
motionのgithub: Motion-Project/motion

motionの設定

設定ファイルに対して、下記の変更を行いました。
/etc/motion/motion.conf
# 状態を見るためにログを有効にしました。動作が安定すれば無効にして
logfile /tmp/motion.log

# これがonだと、画像のログが残ります。
output_pictures off

# これがonだと、動画のログが残ります。
ffmpeg_output_movies off

# 無くなった機能の設定項目のようです。これがあると、ログにエラーが出ます。
# sdl_threadnr 0

# これがonだと、raspberry piの中からしかストリームが見れません。
stream_localhost off

参考:
Motion Guide
Raspberry Pi に Webカメラ2(再設定)
Motion の導入手順 ~ 指定した内容、パラメータの意味について
[Motion-user] Unknown config option "sdl_threadnr"

動作確認

motionを実行します。
sudo motion

motionが動作していることを確認します。
ps aux | grep motion


設定のログを有効にしていれば、下記のコマンドでmotionのログを見れます。
(ログの閲覧はCtr + cで止めれます。)


下記のログが出ていれば、raspberry pi以外からアクセスできるようになっています。
[1] [NTC] [STR] [Oct 30 07:50:54] http_bindsock: motion-stream Bound : IPV4 addr: 0.0.0.0 port: 8081

raspberry piが割り当てられているipの8081ポートにアクセスすると、ストリームが見れます。
(ipアドレスはraspberry pi上でifconfigを実行すると確認できます。)


320x240の2fpsなのですが、試した環境では同じLAN内でもwifi経由だと4秒くらいのタイムラグで表示できました。

自動起動設定

下記の変更でデーモンを有効にすると、raspberry piを起動するとmotionが動くようになります。
/etc/default/motion
start_motion_daemon=yes

参考: Motion-MMAL Auto Start on Boot?

以上です。

変更履歴

2016.11.15
自動起動設定を追加しました。

0 件のコメント :

コメントを投稿