こんにちは。
コンストラクションソリューション事業部 開発部の向井です。
弊社にはジオスコープやミルモットといった映像や画像で遠隔から確認できるサービスがあるのですが
そのような開発をした経験が無かったので、
今回はラズパイとWebカメラを使用して遠隔から映像確認できる仕組みを作ろうと思います。
ペットの監視とかに使用したら便利かもしれませんね。
用意したもの
- Raspberry Pi 3
- Webカメラ(Logicool C505 )
ストリーミング配信手順
ラズパイではmjpg-streamer(https://github.com/jacksonliam/mjpg-streamer)
というソフトを使えば簡単に動画配信することができます。
1. mjpg-streamerインストール
1 2 3 4 5 |
sudo apt update sudo apt install -y cmake libv4l-dev libjpeg-dev imagemagick git clone https://github.com/jacksonliam/mjpg-streamer.git cd mjpg-streamer/mjpg-streamer-experimental sudo make; sudo make install |
2. 起動スクリプト作成・実行
1 2 |
sudo nano start_stream.sh sh start_stream.sh |
start_stream.sh(BASIC認証付き)
1 2 3 4 5 6 7 8 9 10 |
#!/bin/sh PORT="8080" #ポート番号 ID="root" #ID PW="password" #パスワード SIZE="1280x720" #画面サイズ FRAMERATE="30" #フレームレート 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 ./www -p $PORT -c $ID:$PW" |
起動できると下記のように表示されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
MJPG Streamer Version: git rev: 310b29f4a94c46652b20c4b7b6e5cf24e532af39 i: Using V4L2 device.: /dev/video0 i: Desired Resolution: 1280 x 720 i: Frames Per Second.: 30 i: Format............: YUYV i: JPEG Quality......: 80 i: TV-Norm...........: DEFAULT i: FPS coerced ......: from 30 to 15 o: www-folder-path......: ./www/ o: HTTP TCP port........: 8080 o: HTTP Listen Address..: (null) o: username:password....: root:password o: commands.............: enabled |
3. ブラウザからストリーミング配信を確認する
起動後下記のurlにアクセスすれば確認できます。
カメラはラズパイにUSBを差すだけで使えました。
1 |
http://ラズパイのIPアドレス:8080 |
結構きれいに映りました。
実際の開発ではHTMLに
<img src=”http://ラズパイのIPアドレス:8080/?action=stream”>
のようにすれば埋め込めます。
おまけ1 ラズパイ起動時に配信を自動起動する
1 |
sudo nano /etc/rc.local |
rc.localと呼ばれる起動時に実行されるシェルスクリプトに下記の内容を追加します。
1 |
sh /home/pi/mjpg-streamer/mjpg-streamer-experimental/start_stream.sh |
再起動後、配信が自動起動されました。
おまけ2 配信されている映像をffmpegで保存してみる
今回はBasic認証付きで配信したので、URLにIDとパスワードを入れています。
特に監視するものが無かったのでルービックキューブ回してます。
1 2 |
sudo apt install -y ffmpeg ffmpeg -i http://【ID】:【PW】@ラズパイのIPアドレス:8080/?action=stream file.mp4 |