mjpg-streamerはラズパイでカメラの映像をストリーミング配信するためのソフトウェアです。インストールと設定手順を紹介します。
手順は以下
- mjpg-streamerのインストール
- 起動用スクリプトの作成
- 自動起動の設定
- 起動確認
1.mjpg-streamerのインストール
以下のコマンドでインストールします。
$ sudo apt update $ sudo apt install git cmake libjpeg8-dev $ git clone https://github.com/jacksonliam/mjpg-streamer.git $ cd mjpg-streamer/mjpg-streamer-experimental $ make $ sudo make install
2.起動用スクリプトの作成
起動用のスクリプト(start.sh)を作成します。
start.shの中身
## This example shows how to invoke mjpg-streamer from the command line
#インストール先のパスを設定
export LD_LIBRARY_PATH="/home/pi/mjpg-streamer/mjpg-streamer-experimental"
STREAMER="$LD_LIBRARY_PATH/mjpg_streamer"
# 表示する画像サイズとフレームレートを設定
# 画像サイズ(320×240)
# フレームレート:10fps
XRES="320"
YRES="240"
FPS="10"
# Webサーバーの設定
WWWDOC="$LD_LIBRARY_PATH/www"
PORT="8080"
#ベーシック認証の設定
ID="AAA" #ベーシック認証用のID
PW="BBB" #ベーシック認証用のパスワード
# 起動用のコマンド
#for USB Camera
$STREAMER -i "input_uvc.so -y -n -f 10 -r 320x240 -d /dev/video0" \
-o "output_http.so -w $WWWDOC -p $PORT -c $ID:$PW"
#for Raspberry Pi Camera Module
#$STREAMER -i "input_raspicam.so -x $XRES -y $YRES -fps $FPS" \
# -o "output_http.so -w $WWWDOC -p $PORT -c $ID:$PW"
3.自動起動の設定
rc.localでの自動起動
/etc/rc.localをエディタで開き、「exit 0」の手前に実行コマンドを追加します。
# Print the IP address _IP=$(hostname -I) || true if [ "$_IP" ]; then printf "My IP address is %s\n" "$_IP" fi #mjpeg-streamerの実行コマンド sudo sh /home/xxx/mjpg-streamer/mjpg-streamer-experimental/start.sh & exit 0 ~
追記が終わったら、再起動します。
$sudo reboot
systemdでの自動起動
最近、ラズパイを最新にアップデートしたら、rc.localでの自動起動ができなくなったので、systemdでの自動起動の設定方法も記載しておきます。systemdの方が推奨なので、今後のことを考えるとこちらの方が良いかもしれません。
mjpg_streamer.serviceファイルを作成します。
※mjpeg-streamerのパスはご自身の環境に合わせて書き換えてください。
[Unit] Description=WebIOPI After=syslog.target [Service] Type=simple WorkingDirectory=/home/userxx/mjpg-streamer] ExecStart=/home/userxx/jmpg-streamer/start.sh TimeoutStopSec=5 StandardOutput=null [Install] WantedBy = multi-user.target
基本的には、Descriptionにサービス名、WorkingDirectoryに作業ディレクリ名、ExecStartに実行したいプログラムを記載すればいいはずです。
他のオプションに関しては、systemdの仕様を調べて必要に応じて追加しましょう。
作成したファイル(mjpg_streamer.service)を「/etc/systemd/system」ディレクトリ配下に移動して読み込みます。
$ sudo mv mjpg_streamer.service /etc/systemd/system/ $ sudo systemctl daemon-reload
以下コマンドでサービスの自動起動を設定します。
$ sudo systemctl enable mjpg_streamer
自動起動を停止したい場合は以下のコマンド
$ sudo systemctl disable mjpg_streamer
サービスの起動と停止は以下のコマンド
$ sudo systemctl start mjpg_streamer $ sudo systemctl stop mjpg_streamer
サービスの自動起動を設定したら再起動して確認してください。
$sudo reboot
4.起動確認
起動後に、http://[サーバーのIPアドレス]:8080にアクセスして、
ベーシック認証で設定したIDとパスワードを入れて映像が表示されればOKです。
以上でmjpeg-streamerのインストールと設定は完了です。
以下は追加情報です。自宅内からのみ使用する場合は必要ありません。
外部からアクセスしたい場合の参考情報です。
外部からのアクセス設定
このページではmjpeg-streamerのインストール&設定を紹介しています。
外部からアクセスする場合は、ルータのポート開放が必要になります。
毎回グローバルIPを確認するのも大変なので、ダイナミックDNSを利用すると便利です。
おまけ
自宅にペットを飼っていると、外からペットの様子を見たくなりますね。
我が家に越してきたわんぱく盛りの「ぐりとぐら」の様子を見れるようにしました。
ちなみに、茶の方が「ぐり」で、白と茶の方が「ぐら」です。
二人は生まれてからずっと一緒にいるので仲良しです。
実際の映像はこんな感じです。
最後まで見ていただきありがとうございました。