前回は、
を実現した。
この際、専用カメラモジュールからの映像は、
・RPi_Cam_Web_Interface
を利用して配信していた。
私個人としては、これで全く不自由はない。
が、一般的には
・mjpg-streamer
を使うらしい。
ということで今回は、
『ブラウザから操作できるライブ(監視)カメラを作る!(mjpg-streamer 編)』
を実現してみたいと思う。
■はじめに
ここでは、
の RPi_Cam_Web_Interface で実現している部分を、
・Mjpg-streamer
で実現するように置き換える。
このため、それ以外の各種設定に関しては、
と同様であることにご注意頂きたい。
■Mjpg-streamer の設定
まずは mjpg-streamer を使える様にする。
具体的にやる作業としては、
となる。
以下、各々について記載する。
インストール
インストール自体は、
Raspberry Pi用カメラモジュールおよび赤外線カメラPi NoIRの映像をandroidで表示してみた
http://neuralassembly.blogspot.jp/2013/11/raspberry-pipi-noirandroid.html
のサイトで、起動・停止方法は
25 Sep 2013
Raspberry Pi camera board video streaming
https://miguelmota.com/blog/raspberry-pi-camera-board-video-streaming/
のサイトで記載している内容を実現すればよい。
が、両方チラチラ見比べるのも面倒。
ということで備忘録かねてまとめておく。
まずはリポジトリを update しておく。
root@raspi-03:~/# apt-get update
続いて、必要なものを install しておく。
root@raspi-03:~/# apt-get install libjpeg8-dev cmake
終わったら、mjpg-streamer のソースを取得。
root@raspi-03:~/# git clone https://github.com/jacksonliam/mjpg-streamer.git mjpg-streamer
なお、git が入っていない場合は、
root@raspi-03:~/# apt-get install git
で入れておこう。
ソースが取得できたら、ディレクトリ移動。
root@raspi-03:~/# cd mjpg-streamer/mjpg-streamer-experimental
その後、make でコンパイルする。
root@raspi-03:~/mjpg-streamer/mjpg-streamer-experimental# make
数分程度で終わるはず。
後は、
root@raspi-03:~/mjpg-streamer/mjpg-streamer-experimental# cd
でホームディレクトリに戻り、
root@raspi-03:~/# mv mjpg-streamer/mjpg-streamer-experimental /opt/mjpg-streamer
としてディレクトリごと /opt/mjpg-streamer に移動しておく。
インストール自体はこれで完了。
Stretch でも特に問題なくインストールできた。
起動・停止設定
続いて、起動・停止用のシェルスクリプトを用意しておく。
コンソールから起動する場合は、
root@raspi-03:~/# LD_LIBRARY_PATH=/opt/mjpg-streamer/ /opt/mjpg-streamer/mjpg_streamer -i "input_raspicam.so -fps 15 -q 50 -x 640 -y 480" -o "output_http.so -p 9000 -w /opt/mjpg-streamer/www" > /dev/null 2>&1&
とすれば起動できる。
これ自体が既に面倒だが、止めるときも面倒。
root@raspi-03:~/# pgrep mjpg
等でプロセスを特定し、kill コマンドで停止させないといけない。
正直これだと使う気にならないので、起動・停止用スクリプトを作る。
まずは起動スクリプト。
#!/bin/bash if pgrep mjpg_streamer > /dev/null then echo "mjpg_streamer already running" else LD_LIBRARY_PATH=/opt/mjpg-streamer/ /opt/mjpg-streamer/mjpg_streamer -i "input_raspicam.so -fps 15 -q 50 -x 640 -y 480" -o "output_http.so -p 9000 -w /opt/mjpg-streamer/www" > /dev/null 2>&1& echo "mjpg_streamer started" fi
これを、とりあえずここでは
/root/mjpg_streamer_start.sh
として保存する。
次は停止スクリプト。
#!/bin/bash if pgrep mjpg_streamer then kill $(pgrep mjpg_streamer) > /dev/null 2>&1 echo "mjpg_streamer stopped" else echo "mjpg_streamer not running" fi
という内容を
/root/mjpg_streamer_stop.sh
として保存する。
これで、各々をコマンドラインから実行すれば、起動・停止できる。
ちなみに、自動起動させたい場合は
/etc/rc.local
の
exit 0
の前に、
sh /root/mjpg_streamer_start.sh
を記載しておけばよい。
■必要な設定
ここも、
との差分部分だけを記載する。
差分は、index.html をいじる所だけ。
RPi_Cam_Web_Interface の場合には、
で作った index.html の中の、
・body 部分直下の div の直後の行
に、
・<iframe width=”640″ height=”480″ src=”http://[IP addess]/[Subfolder]/”></iframe>
を組み込んだ。
mjpg-streamer の場合でも同様にすればよいのだが、
・<img width=”640″ height=”480″ src=”http://[IP address]:9000/?action=stream” />
としても実現できる。
以上。簡単。
■まとめ
前回は、
において、RPi_Cam_Web_Interface で画像配信していた。
で、今回はこれを Mjpg-streamer に置き換えてみた。
どっちがよいか、は正直好みかもしれない。
私個人としては、RPi_Cam_Web_Interface の方がよい。
理由としては、動画の録画、静止画のキャプチャも同時に実現できるから。
一方、余分な機能はいらない、自分で作るんだ!と言う人は、
Mjpg-streamer の方がシンプルで自由に設計できるだろう。
また、USB カメラを使うなら、Mjpg-streamer でないと無理っぽい。
まぁ、このみかな。やっぱり。
Copyright (c) 2017 Webmaster of this site All Rights Reserved.
ピンバック: WEBカメラで動画ストリーミングをやってみる
ピンバック: リモコンCAM-PROGRAM ROBOTにカメラを搭載しようとしたが・・!