77Lifeworkベータ版

77Lifeworkベータ版

IT関係の話(ツール開発・インフラ構築)をメインとして、その他私の趣味や雑記用のブログです。ここに書いた内容が少しでも参考になれば嬉しいです。

RaspberryPiにUSBカメラを接続してストリーミングで映像を確認する方法

はじめに

こんにちは。今回はRaspberryPiにUSBカメラを接続し、映像をストリーミングで確認する方法を書いていきます。
ストリーミングでリアルタイムに映像を確認することができれば、RaspberryPiをネットワークカメラとして使用することもできますね。


RaspberryPiのOSインストールと初期設定は下の記事にまとめていますので、よかったらご覧ください。
www.77-lifework.com


また、ここで使用しているRaspberryPiのモデルは「Raspberry Pi 3 model B+」です。
2年前ぐらいに買ったであろうものです。

USBカメラの動作確認とストリーミング

今回使用したUSBカメラは以下です。テレワークの会議など、他の用途でも使えそうなやつを選びました。


まずはラズベリーパイにUSBカメラを接続した状態でssh接続します。
Macの方はターミナルから「ssh pi@<ラズベリーパイのIPアドレス>」、Windowsの方はteratermなどのソフトを起動して接続しましょう。
以下のようにログインします。
f:id:J-back:20210115000232p:plain:w600


「lsusb」を実行してUSB接続されている機器を確認します。
今回使用するUSBカメラが認識されています。
f:id:J-back:20210115000541p:plain:w600



カメラの動作確認のため、mjpg-streamerをインストールしてみましょう。
これを実行するとUSBカメラを使用してストリーミングができ、Webブラウザ経由でカメラに写っているものを確認できます。

まずはパッケージをアップデートしておきます。

sudo apt update
sudo apt upgrade

mjpg-streamerに必要なパッケージをインストールします。

sudo apt install libjpeg8-dev cmake


mjpg-streamerをダウンロードします。

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


すると「mjpg-streamer」というディレクトリができていると思いますので、
「cd mjpg-streamer/mjpg-streamer-experimental」を実行してディレクトリを移動します。
f:id:J-back:20210115001642p:plain:w600


以下を実行してコンパイルします。

make
sudo make install

これでインストールが完了したので、以下で「start.sh」を実行してみましょう。

./start.sh


この状態で自分のPCのブラウザから「http://<ラズベリーパイのIPアドレス>:8080」にアクセスしてみると以下のようにmjpg-streamerの画面が表示されます。
f:id:J-back:20210115002420p:plain:w600


Streamingのタブを開いてみると、カメラの映像が表示されています。
f:id:J-back:20210115003612p:plain:w600




画像サイズやフレームレートを設定するため、「start.sh」を参考にして、以下のようなスクリプトをつくります。
「streaming_start.sh」という名前で保存します。

#!/bin/sh
SIZE="320x240"  #画面サイズ
FRAMERATE="30"   #フレームレート
export LD_LIBRARY_PATH="${pwd}"
./mjpg_streamer -i "input_uvc.so -f $FRAMERATE -r $SIZE -d /dev/video0 -y -n" -o "output_http.so -w ./www"

以下のように&付きで実行するとバックグラウンドで実行できます。

./streaming_start.sh &