こんにちは。最近パソコン周りを整理していたらWEBカメラを見つけました。前からラズパイを使って防犯カメラ的なものを作れたらいいなーと思ってましたので、今回はWEBカメラでストリーミングしてみようと思います。
目的
・WEBカメラをラズパイに接続する
・動画をストリーミング配信する
今回使うカメラはこちらです。たまたま家にあっただけで、USB接続のカメラならもっと安いのでもいいと思います。
ELECOM PCカメラ 200万画素 筒型 UCAM-DLA200Hシリーズ
MJPG-streamerのインストール
Linuxでストリーミング再生できるソフトである「MJPG-streamer」を使います。このソフトはapt-getでインストールできないらしいので、「Subversion」でインストールします。まず必要なソフトをインストールしておきます。
sudo apt-get update sudo apt-get install subversion libjpeg-dev imagemagick
続いて「MJPG-streamer」を取得してインストールします。
svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer mjpg-streamer cd mjpg-streamer make sudo make install
ストリーミング配信してみる
まずはWEBカメラがラズパイにきちんと認識されているか確認します。
ppdr@raspberrypi:~ $ lsusb Bus 001 Device 006: ID 14cd:125c Super Top SD card reader Bus 001 Device 007: ID 056e:700a Elecom Co., Ltd 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
Elecom…みたいな感じのカメラの名前が出ていれば認識されています。デバイスとしての名前も確認しておきましょう。
ppdr@raspberrypi:~ $ ls /dev ... video0 ...
私の名前はvideo0という名前で認識されました。どれがカメラかわからない方は抜いたり指したりして追加された名前を確認してみましょう。
次のコマンドでMJPG-streamerを起動しましょう。
cd ~/mjpg-streamer sudo ./mjpg_streamer -i "./input_uvc.so -f 10 -r 320x240 -d /dev/video0 -y -n" -o "./output_http.so -w /usr/local/www -p 8080 -c ppdr:password"
-fはフレームレートで、1秒に何回動画を更新するかです。少ないほど通信量が小さくなります。
-rは動画のサイズです。あまり大きくしないほうが止まらずに見れます。
-pはストリーミングするポート番号です。webページやリモートデスクトップで使用している80や443など以外の番号ならなんでもいいでしょう。ポートが使用中だと次のようなエラーになります。
bind: Address already in use
WEB上に公開して誰でも見れてしまうとセキュリティ的に(プライバシー的に?)良くないので-cでパスワードをかけます。[ユーザ名]:[パスワード]で指定します。
エラーがでなければストリーミング配信が始まります。
ネットワークにつながっている他のPCのブラウザのアドレス欄に、[ラズパイのIPアドレス]:[ポート番号]を入力してエンターを押します。(例)192.168.0.7:8080
こんな感じのページに移動して、カメラの映像を見ることが出来ました!
使い道① 外出先から自宅カメラの様子を確認
防犯カメラ的な使い方をするなら、外出先から見れると便利です。その場合はVPN接続がおすすめです。ラズパイに外出先からVPNする方法は長くなるので次回解説します。
使い道② 動画をWEBに公開
動画を他の人に見てもらいたい場合は、
- DDNSサービスを利用してラズパイに接続できるようにする
- ルーターのポートを開放する
両方とも解説しているサイトが多数あるので、ここでの説明は割愛します。VPNで自分だけ見る場合はいいですが、外部に公開する場合はパスワードをきっちり設定しましょう。