監視カメラ
専用カメラ「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 |