Raspberry Pi ×カメラモジュールで動画配信(ストリーミング)してみる

 mjpg-streamerを使ってカメラからの映像をストリーミング配信(動画配信)してみます。この手の解説サイトは多々あるのですが、微妙な環境な違い??いろいろな方法がある??少してこずったので私の環境でうまくいった方法を完全に個人的な覚書となりますが纏めておきます。

 ただ方法といってもここのドキュメントに記載のある方法そのままです▼

▼アップデートとインストール▼

# Update & Install Tools
$ sudo apt-get update -y
$ sudo apt-get upgrade -y
$ sudo apt-get install build-essential imagemagick libv4l-dev libjpeg8-dev cmake -y

# Clone Repo in /tmp
$ cd /tmp
$ git clone https://github.com/jacksonliam/mjpg-streamer.git
$ cd mjpg-streamer/mjpg-streamer-experimental

# Make
$ make
$ sudo make install

 インストールはこれで完了。

▼次にmjpg-streamerを起動します▼

$ /usr/local/bin/mjpg_streamer -i "input_uvc.so -r 1280x720 -d /dev/video0 -f 30 -q 80" -o "output_http.so -p 8080 -w /usr/local/share/mjpg-streamer/www"

 このコマンドで動画配信が開始されます。ここでは解像度やFPS、画像品質、ポート番号などを指示してます。起動するたびにこのコマンドは長くて手間です。

▼ブラウザで配信確認▼

http://***.***.***.***:8080

 「***.***.***.***」にはラズパイIPアドレスを記述します。同一LAN内にあるスマホやパソコンなど適当なブラウザでここにアクセスするとカメラ(ラズパイ)から動画配信されているのが確認できると思います。

 基本的にはこれで動きますが、mjpg-streamerを起動するあの長いコマンドをいちいち記述するのは面倒です。なので起動用のファイル(シェル)を作成しておきます。

▼起動用ファイルを作成▼

 ファイルマネージャー開いて、好みの場所に「*****.sh」ファイルを作成します。ほんとはターミナルでnanoコマンドで作成したかったのですが、なぜかパーミッション(権限)の関係がうまくいかなかったのでこの方法でファイル作成しました。ここでは /home/pi 直下に「stream.sh」と空ファイル作成してます。

▼次に作成したファイルの中身を編集▼

$ nano stream.sh

編集画面開いて、

#!/bin/sh

PORT="8080"
SIZE="1280x720"
ID="user"
PW="user"
QUALITY="80"
FRAMERATE="30"
export LD_LIBRARY_PATH=/usr/local/lib
/usr/local/bin/mjpg_streamer \
   -i "input_uvc.so -r $SIZE -d /dev/video0 -f $FRAMERATE -q $QUALITY" \
   -o "output_http.so -p $PORT -c $ID:$PW -w /usr/local/share/mjpg-streamer/www"

▲などと記述して、「ctr+o」で上書き保存して、「ctr+x」で終了します。nanoを使用して編集しましたが、どんなエディタでもいいと思います。カメラの起動設定を記述しているシェルとなります。これで準備完了。

▼シェルを起動▼

$ sh stream.sh

 以後、動画配信を開始するときは先ほどのシェルを起動するだけでO.K。これで動画配信が開始されます。先ほどのコマンドよりはずいぶん簡単。

 あとラズパイ起動時に動画配信を自動起動するとか、外出先から見るとかいろいろできるのですが、今回はそこまでする必要ないのでこの辺で完了です・・。

コメント