監視カメラ
専用カメラ「Raspberry Pi Camera Modules v2」を接続したラズパイを監視カメラとして使います。
カメラで撮影した映像をネットで配信し、PCやスマホで見ることができるようになります。
MPEG-streamerの導入
MPEG-streamerをラズパイにインストールすると、カメラで撮影した動画を同じアクセスポイントに接続しているPCやスマホで見ることができます。ただ、MPEG-streamerはすぐにラズパイにインストールできるバイナリファイルでの提供がないために、MPEG-streamerのソースファイルと実行に必要なパッケージをダウンロードしてラズパイ内でコンパイル・インストールします。
sudo apt-get install libv4l-dev sudo apt-get install libjpeg8-dev sudo apt-get install imagemagick sudo apt-get install cmake git clone https://github.com/jacksoliam/mjpg-streamer.git cd mjpg-streamer/mjpg-streamer-experimental make
libv4l-dev、libjpeg8-dev、imagemagickは、MPEG-streamer実行に必要なパッケージ、cmakeはコンパイルに必要です。ソースファイル自体はgithubからダウンロードしますが、念のためダウンロードしたファイルを ここ に置いておきます。
ダウンロードしたファイルにカレントディレクトリを移動し、コンパイルします。
streamerの実行と終了
カメラをラズパイに接続してから、カレントディレクトリが ./mjpg-streamer/mjpg-streamer-experimental にあることを確認し、コマンドで MJPG-streamer を起動します。ターミナル画面には、配信している画像の情報が表示されます。次のコマンは、PiCameraから 320x240px 毎秒30枚の画像がポート8080から配信されます。
映像配信を終了するには、ターミナル画面で「CTL + c 」を入力します。
./mjpg_streamer -i "./input_raspicam.so -fps 30 -x 320 -y 240" -o "./output_http.so -w ./www -p 8080"
streamerの受信
PCやスマホのインターネットブラウザーのアドレス欄に次のアドレスをを入力し 配信されている映像を見ることができます。
http://192.168.0.8:8080
http://raspberrypi.local:8080
上記アドレスにアクセスすると、MJPG-Streamerのホームページ(左)が表示されます。左欄の『Stream』をクリックすると動画映像を中心に表示されます。
さらに単純に動画配信だけを見るには、ブラウザーのアドレス欄に次のアドレスをを入力します。
http://192.168.0.8:8080/stream_simple.html
http://raspberrypi.local:8080/stream_simple.html
上記アドレスにアクセスすると、動画映像だけのHTMLページが表示されます。
stream_simple.html のソースコードを以下に示します。
<html> <head> <title>MJPG-Streamer - Stream Example</title> </head> <body> <center> <img src="./?action=stream" /> </center> </body> </html>
使用するコマンンドのオプション一覧を示します。
オプション | 説明 |
-i (input) | 入力プラグインを指定 "<input-plugin.so> [parameters]" |
-o (output) | 出力プラグインを指定 "<output-plugin.so> [parameters]" |
-b (background) | Stream配信をバックグランドで実行する。このオプションをつけてコマンド実行すると、直後に「forked to background (4979)」のようにプロセスID番号の知らせがある。MJPG-Streamを停止するにはこの番号を使用し「kill 4979」とする。 |
input_raspicam.so ラズパイ専用カメラプラグイン パラメータ | |
-fps (framerate) | 撮影のフレームレート 初期値 5 frame/sec |
-x (width) | 画像の横幅 初期値 640px |
-y (height) | 画像の高さ 初期値 480px |
-quality | JPEG品質 0-100 初期値 85 |
-sh (sharpness) | シャープネス (-100 to 100) |
-co (contrast) | コントラスト (-100 to 100) |
-br (contrast) | 明るさ (0 to 100) |
-sa (saturation) | Set image saturation (-100 to 100) |
-ISO | ISO値 |
-vs (www) | Turn on video stablisation |
-ev (www) | EV 補正指定 |
-ex (exposure) | 露出モード指定 (see raspistill notes) |
-awb (www) | ホワイトバランス指定 (see raspistill notes) |
-ifx (image effect) | 映像エフェクトの追加 (see raspistill notes) |
-cfx (colour effect) | 色彩エフェクトの追加 (U:V) |
-rot (rotation) | 画像回転 (0-359) |
-drc (Dynamic range) | ダイナミックレンジ補正 (see raspistill notes) |
-hf (h-flip) | 水平反転 |
-vf (v-flip) | 垂直反転 |
output_http.so HTTP出力プラグイン パラメータ | |
-w (www) | folder that contains webpages in flat hierarchy (no subfolders) |
-p (port) | TCP port for this HTTP server |
-c (credentials) | ask for "username:password" on connect |