mjpeg-streamerのインストール&設定

mjpg-streamerはラズパイでカメラの映像をストリーミング配信するためのソフトウェアです。インストールと設定手順を紹介します。

手順は以下

  1. mjpg-streamerのインストール
  2. 起動用スクリプトの作成
  3. 自動起動の設定
  4. 起動確認

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を利用すると便利です。

外部からのアクセスイメージ

おまけ

自宅にペットを飼っていると、外からペットの様子を見たくなりますね。

我が家に越してきたわんぱく盛りの「ぐりとぐら」の様子を見れるようにしました。

ちなみに、茶の方が「ぐり」で、白と茶の方が「ぐら」です。

二人は生まれてからずっと一緒にいるので仲良しです。

実際の映像はこんな感じです。

最後まで見ていただきありがとうございました。

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA