nyabot’s diary

電気猫の夢を見るお話

Raspberry Piに「MJPG-streamer」をインストールする

現在製作中のロボットにはUSBカメラを取り付けてあり、今後、

  • スマホからロボットの視点で操作
  • 画像解析(顔検知など)

を行いたいと考えています。

今回は、カメラの映像を配信可能にする「MJPG-streamer」をインストールしたのでメモ。

カメラはロジクールWebカメラから中身を取り出して、頭部に搭載しています。

nyabot.hatenablog.com

インストール方法や設定に関しては、書籍「実例で学ぶ Raspberry Pi 電子工作」とWeb上の情報を参考にさせていただきました。
このエントリーとは直接関係しないけど、電源OFFボタンの作成や6足歩行ロボットの作り方なども書かれているのでとてもおすすめ。

今回に限らず、Webの情報だけだとうまくいかないケースも多く、一方で書籍だけだと環境が自分と違う(ラズパイ用のカメラモジュールを使用していたり)ので、双方でうまく補完しつつ学んでいます。

MJPG-streamerのインストール

以下のコマンドでインストールと、ファイルのシステム領域への移動を行う。

$ sudo apt-get update
$ sudo apt-get install libjpeg8-dev cmake
$ git clone https://github.com/jacksonliam/mjpg-streamer.git
$ cd mjpg-streamer/mjpg-streamer-experimental
$ make
$ cd
$ sudo mv mjpg-streamer/mjpg-streamer-experimental /opt/mjpg-streamer

MJPG-streamerの起動

起動用のファイルを作成

$ sudo nano /home/pi/mjpg-streamer/start_server.sh

以下の内容を記述して、保存。

#!/bin/sh

PORT="9000" #ポート番号
SIZE="480x640" #画面サイズ
QUALITY="80" #画像クオリティ
FRAMERATE="30" #フレームレート
MJPEGDIR=/home/pi/mjpg-streamer
export LD_LIBRARY_PATH=/usr/local/lib
$MJPEGDIR/mjpg_streamer \
    -i "input_uvc.so -f $FRAMERATE -r $SIZE -q $QUALITY -d /dev/video0 -y -n" \
    -o "output_http.so -w /usr/local/www -p $PORT"

今回ここではパスワードを設定していないので、将来的に外部からもアクセス可能にする際は注意しないと。


2020.08.31 追記
1年経って上記の方法でやり直したらうまくいきませんでした🥺
原因がわかったら修整予定!


起動確認

以下のコマンドで起動する。

$ sh /home/pi/mjpg-streamer/start_server.sh

http://{Raspberry PiIPアドレス}:{設定したポート番号(9000)}/にブラウザからアクセスして、以下のような画面が表示されたらOK。

mjpg-streamerのデモページ

左側のメニューの「Stream」や「Javascript」から、実際にカメラで撮影している映像を確認できる。

ちなみに終了させる場合は、

$ ps ax | grep mjpg

でプロセスIDを調べて、

$ sudo kill {プロセスID}

でOK。

ラズパイ立ち上げ時に自動起動するよう設定

/etc/rc.local の最後にある、

exit 0

の前に、以下の1行を追加。

sh /home/pi/mjpg-streamer/start_server.sh &

これで、Raspberry Piの起動時にMJPG-streamerが立ち上がるようになりました。
ひとまず今回はインストールと起動設定まで。

つづく。