株式会社ジーテック

制御機器を小ロット多品種で設計製作

RaspberryPiでネットワークカメラ

Webカメラが欲しくなって色々調べてみるといまいちな製品しかない気がしたのでラズパイで自作してみることにしてみました。ちなみにいまいちと考えた点は以下の通り。対象としているのはコンシューマー向けで5万円以下で検討しました。

・画素数の主流はいまだに200万画素程度(2021年現在)。スマホでも1000万画素以上が数年前から普通なのにさすがに遅れすぎ。さらに拡大した時は画像が荒すぎて使えない可能性もある。

・専用ソフトが必要なことが多い。首振り機能もないのに専用ソフトが必須だったりその専用ソフトを取得するためにユーザー登録が必要などわずらわしさが目についた。

・カメラ部分が割と大きく、設置したいところに設置しにくい気がした。

今回の構成としてはラズパイにUSBのWebカメラを接続し、電源を入れるだけでストリーミング配信されることを目的としました。

使用したラズパイはモデル3B Ver.1.2でプラスではない方です。
ちなみにラズパイを使用する際は安定性を考慮して常にピンヘッダからの供給としている。USBケーブル+USB接続タイプのACアダプタは見るからに不安定な気がする。

WebカメラはロジクールのHD Pro Webcam C910を使用したが特にこれではなくてもUSB接続できるカメラなら同じ手順で行けそうな気はする。

事前準備?

通常ラズパイでカメラを使用する場合、設定でカメラを有効にしますがUSBカメラを使用する場合は関係ないようです。

フラットケーブルで接続するラズパイ用のカメラを使用する際にはカメラを有効にし、下記コマンドで動作確認します。

raspistill -o test.jpg

しかもUSBでWebカメラを接続してもUSB機器としてのリストには出てきますが、サポートされているとはなりません。
これもどうやらラズパイ用のフラットケーブルで接続するカメラに対する事の様です。

事前にカメラの動作確認をする場合は別のWindowsPCで確認するほうがよさそうです。

ストリーミングソフトをセットアップ

ストリーミングソフトはMJPG-streamerを使用します。当然ながら先にOSは更新しておきましょう。続いて、必要なパッケージをインストールします。


sudo apt update
sudo apt upgrade
sudo apt install git cmake libjpeg8-dev -y
sudo pip3 install ipget

MJPG-streamerのソースはgithubから取得します。


git clone https://github.com/jacksonliam/mjpg-streamer.git

取得できたらソースフォルダに移動してメイクとインストールを行います。


cd mjpg-streamer/mjpg-streamer-experimental
make
sudo make install

ストリーミングテスト

ここまででストリーミングに関してセットアップは完了していますのでソフトを起動させれば確認ができます。


sudo ./mjpg_streamer -i "./input_uvc.so -f 10 -r 1920x1080 -d /dev/video0 -y -n" -o "./output_http.so -w ./www -p 8080"

上記の設定で起動した場合、接続先は次の通りとなります。

http://<ラズパイのIP>:8080/

ストリーミング配信のアドレスは次の通りです。

http://<ラズパイのIP>:8080/?action=stream

起動時の自動起動

起動時に自動実行するスタートアップの設定は複数ありますが、今回はrc.localファイルに追記することとしました。


cd /etc
sudo nano rc.local

追記した内容はこの2行で、exit 0の前に追加してください。


cd /home/pi/mjpg-streamer/mjpg-streamer-experimental
sudo ./mjpg_streamer -i "./input_uvc.so -f 10 -r 1920x1080 -d /dev/video0 -y -n" -o "./output_http.so -w ./www -p 8080"

最後に

以上で完了し、次からは電源を突き刺すだけで自動的に配信され、見るほうはブラウザでラズパイのアドレスを登録しておけば簡単に見ることができます。しかもルーターのDMZやVPNの機能を併用すればどこからでも確認できる様になります。

©ZEATEC co.,ltd.