RaspberryPiとMJPG-Streamerでライブストリーミングをする方法

RaspberryPiとMJPG-Streamerでライブストリーミングをする方法

今回は「RaspberryPiとMJPG-Streamerでライブストリーミングをする方法」をご紹介したいと思います。今回Webカメラを購入してそれでライブストリーミングできればなと思いましてやってみました。同じような考えをする人はいるもので、検索したらすでにたくさんの方が方法を紹介してくれていました。ただ、私のやり方がおかしかったのか、途中つまずいてしまったので備忘録も兼ねて記事を書きます。大まかな流れは目次の通りとなっています。

MJPG-Streamerのダウンロード&解凍

まずは「MJPG-Streamer」のZIPをダウンロードしてきます。こちらのページからZIPをダウンロードしましょう。他の方はSVNから取得されている方が多いようです。

Download ZIPでダウンロードを開始します。

ダウンロードフォルダ内に「mjpg-streamer-master.zip」が保存されます。

先程の「mjpg-streamer-master.zip」を「home/pi」に移動させて解凍します。

解凍フォルダの中に「mjpg-streamer-experimental」フォルダが入っていますので、こちらを「home/pi」に移動します。

これでMJPG-Streamerのダウンロードと解凍は完了です。

ビルドに必要なものをインストール

次にビルドに必要なものをインストールしていきます。
ネットで検索するとたくさんの方が情報を記載してくれているのですが、情報が古かったりで上手くいきませんでしたので、一番信頼性できるであろうGitの情報に沿ってビルドをしていきます。

まずは「cmake」と「libjpeg8-dev」をインストールします。

sudo apt-get install cmake libjpeg8-dev

次に「gcc」と「g++」をインストールします。

sudo apt-get install gcc g++

これでビルドに必要となるものは全てインストールできました。

コンパイル

必要なものがそろったらコンパイルしていきます。これもGitの情報に沿って実施していきます。

まずはカレントディレクトリを「mjpg-streamer-experimental」に移動します。

cd mjpg-streamer-experimental

ここで「make」を実施してコンパイルを開始します。結果は「mjpg-streamer-experimental」内の「_build」フォルダに出来上がるので確認してみましょう。

make

これでコンパイル完了です。

インストール

コンパイルが完了したらインストールしていきましょう。「sudo make install」でインストールしていきます。

sudo make install

起動&ライブストリーミングの表示

これですべての準備が完了しました。「mjpg-streamer」を起動してブラウザからライブストリーミングを観てみましょう。以下のコマンドを入力して「mjpg-streamer」を起動しましょう。こちらだけは他のサイトで紹介されているものを参考にさせていただきました。
このときに発生したエラーの内容はこちらに記載しています。
MJPG-Streamerの起動で発生したときのエラー

mjpg_streamer -i "/usr/local/lib/mjpg-streamer/input_uvc.so -d /dev/video0 -y  -r 320x240 -f 15" -o "/usr/local/lib/mjpg-streamer/output_http.so -p 8080 -w ./www"

次にブラウザを起動して「http://プライベートIPアドレス:8080」もしくは「http://localhost:8080」を入力して「Stream」のページに移動してみましょう。Webカメラの映像が出てたら成功です。

最後「mjpg-streamer」を起動したときにエラーが表示されて映らないかなとも思ったのですが、問題なく映すことができました。でもスッキリしないので今後時間があれば解消していきたいと思います。

なお、「mjpg-streamer」を停止したいときは「Ctrl」+「c」で停止させましょう。

これで外部ネットワークに接続できるようになれば、外出先から部屋の様子を観察するなんてこともできるようになりそうです。

自動起動の設定

RaspberryPiを起動するとMJPG-Streamerも自動で起動するように設定しておきます。ホームディレクトリにフォルダを作成しておきます。

mkdir tool

以下のコマンドで作成したフォルダに移動し「mjpgstreamer.sh」という名前でファイルを作成しておきます。

cd tool

「mjpgstreamer.sh」の中身はこのようにしました。以下のスクリプトファイルが実行されるとMJPG-Streamerが起動します。

#!/bin/sh
 
# This is Web-streaming server start up script.for raspi
# No warrantly.
 
# Config
PORT="8080"
SIZE="320x240" # 640x480でも良いです
F_RATE="15" # 15 fps なので 1秒15コマです。
MJPG_STREAMER=/usr/local/bin/mjpg_streamer
 
export LD_LIBRARY_PATH=/usr/local/lib
$MJPG_STREAMER \
-i "input_uvc.so -f $F_RATE -r $SIZE -d /dev/video0 -y" \
-o "output_http.so -w /usr/local/www -p $PORT" -b

実行確認

以下のコマンドを入力してスクリプトファイルを実行してみましょう。正常にWebカメラの映像が見れればスクリプトファイルがしっかり動いてくれています。

sh /home/pi/tool/mjpgstreamer.sh

RaspberryPiの起動時にスクリプトファイルが呼ばれるように設定を追加しましょう。

sudo nano /etc/rc.local

ファイルが開いたらこの行を追加して保存しましょう。

sh /home/pi/tool/mjpgstreamer.sh

RaspberryPiをリブートしてMPJG-Streamerが自動で起動することを確認しましょう。

 

以上、今回は「RaspberryPiとMJPG-Streamerでライブストリーミングをする方法」についてご紹介させていただきました。

IoTカテゴリの最新記事