Raspberry Pi2に取り付けたWebカメラの画像をPCで確認する方法

 Raspberry Pi2に小型のWebカメラを取り付け、取り込んだその画像を別のPCで確認できるか、に挑戦してみました。
 ここでは、市販のUSBタイプのWebカメラをRaspberry PiのUSBポートのひとつに接続してみましたので紹介します。



1. SSH接続の設定

 Raspberry Pi側の操作はPCで実行するほうがやりやすいので、その場合は、PC側のコマンドライン端末でsshを実行します。

[user01@localhost ~]$ ssh -lpi -p22 192.168.0.11
pi@192.168.0.11's password:

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law.
Last login: Sat Aug 13 15:09:39 2016
pi@raspberrypi:~ $

2. Webカメラの取り付けと設定

 Raspberry PiのUSB端子にUSBタイプのWebカメラを取り付けます。今回は、Elecom社製のWebカメラ(UCAM-C0220FBNBK)を使用しました。
 「lsusb」コマンドを用いて、USBポートにカメラが接続され、Raspberry Piのシステムに認識されているかどうかを確認します。

pi@raspberrypi:~ $ lsusb
Bus 001 Device 007: ID 1a81:2010 Holtek Semiconductor, Inc.
Bus 001 Device 006: ID 15d9:0a33 Trust International B.V. Optical Mouse
Bus 001 Device 005: ID 056e:7016 Elecom Co., Ltd
Bus 001 Device 004: ID 7392:7811 Edimax Technology Co., Ltd EW-7811Un 802.11n Wireless Adapter [Realtek RTL8188CUS]
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
pi@raspberrypi:~ $

 上記コマンドから「Elecom Co., Ltd 」が認識されていることが確認できます。

2-1. Raspberry Pi2側にmjpg-streamerを導入
(1) はじめに、ifconfigコマンドを使ってRaspberry PiのIPアドレスを確認します。

(2) 次に、Linuxのストリーミングソフトである「MJPG-streamer」をインストールします。MJPG-streamerは、パッケージ化されていないためSubversionで取得する必要があります。
 まず、次のコマンドを実行して「MJPG-streamer」のインストールに必要なソフトをインストールしておきます。

pi@raspberrypi:~ $ sudo apt-get update
pi@raspberrypi:~ $ sudo apt-get install -y subversion libjpeg-dev imagemagick

(3) Subversionがインストールできたら、MJPG-streamerをインストールします。

pi@raspberrypi:~ $ svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer mjpg-streamer
pi@raspberrypi:~ $ cd mjpg-streamer
pi@raspberrypi:~/mjpg-streamer $ make
pi@raspberrypi:~/mjpg-streamer $ sudo make install

(4) MJPG-streamerを起動するためのスクリプトを編集します。なお、外部に公開する場合は、簡単ですがユーザー名とパスワードが必要な設定とします。以下のように、アクセスするのに必要となる任意のIDとパスワードを設定して、スクリプトを実行します。

 mjpg-streamerのフォルダ内に以下のファイルを作成し、編集します。

pi@raspberrypi:~/mjpg-streamer $ vi start_server.sh

 ファイル内に以下のスクリプトを追加します。

#!/bin/sh
PORT="8080" #PortNo.
ID="user" #ID
PW="password" #Password
SIZE="320x240" #DisplaySize
FRAMERATE="2" #FrameRate
export LD_LIBRARY_PATH=/usr/local/lib
./mjpg_streamer \
-i "input_uvc.so -f $FRAMERATE -r $SIZE -d /dev/video0 -y -n" \
-o "output_http.so -w /usr/local/www -p $PORT -c $ID:$PW"

 そして、ファイルに実行権を付与します。

pi@raspberrypi:~/mjpg-streamer $ chmod 755 start_server.sh

(5) 以下のスクリプトを実行すると、ストリーミングサーバーが立ち上がります。

pi@raspberrypi:~ $ cd mjpg-streamer
pi@raspberrypi:~/mjpg-streamer $ sudo sh start_server.sh
MJPG Streamer Version: svn rev: 3:172
i: Using V4L2 device.: /dev/video0
i: Desired Resolution: 320 x 240
i: Frames Per Second.: 2
i: Format............: YUV
i: JPEG Quality......: 80
o: www-folder-path...: /usr/local/www/
o: HTTP TCP port.....: 8080
o: username:password.: user:password
o: commands..........: enabled

2-2. PC側よりブラウザで確認
 Webカメラの画像を確認するには、ブラウザで http://[IPアドレス]:[ポート番号] をURL欄に入力して、ページを表示します。この例では、

http://192.168.0.11:8080

となります。
 ユーザー名とパスワードを求められるため、起動スクリプト「start_server.sh」で設定したIDとパスワードを入力します。


 アクセスすると、mjpg-streamerが用意する画面が表示され、USBのWebカメラが撮影した画像を見ることができます。


2-3. ストリーミングサーバーの切断
 Webカメラのストリーミング画像を中止し、サーバーを切断するには、

pi@raspberrypi:~/mjpg-streamer $ sudo sh start_server.sh
MJPG Streamer Version: svn rev: 3:172
i: Using V4L2 device.: /dev/video0
i: Desired Resolution: 320 x 240
i: Frames Per Second.: 2
i: Format............: YUV
i: JPEG Quality......: 80
o: www-folder-path...: /usr/local/www/
o: HTTP TCP port.....: 8080
o: username:password.: user:password
o: commands..........: enabled

の表示されたwindowにて、[CTRL]+[C]を押します。表示は、

^Csetting signal to stop
i: cleaning up ressources allocated by input thread force cancellation of threads and cleanup resources
o: cleaning up ressources allocated by server thread #00 done
pi@raspberrypi:~/mjpg-streamer $

となり、サーバーから切断されます。

 以上ですが、まだまだ改善できることはあると思われます。ひとまず、Raspberry Pi2を用いたWebカメラの使用の挑戦ということでご理解下さい。


参考文献・URL

[1] usbカメラで監視カメラ
http://make.bcde.jp/raspberry-pi/usbカメラで監視カメラ/

(2016-8-15)




■ 以前の記事

→ 「ラズベリーパイ関連(Raspberry Pi)」に関する以前の記事は、こちらをごらん下さい。

 ・Raspberry Pi2 をPCから操作する方法