はじめに
我が家にはオカメインコの巣を観察するために
webカメラとラズパイを使って監視カメラを作ってみる

ダンボールの箱がオカメインコの巣
一日の大半をこの中で過ごしている
巣の入り口部分いカメラをセット
使ったもの
raspberry pi 3b
Raspbian 9.6

iBUFFALO マイク内蔵120万画素Webカメラ HD720p対応モデル ブラック BSWHD06MBK
- 発売日: 2013/12/15
- メディア: Personal Computers
方針
ラズパイに立ち上げたappacheサーバーのドキュメントルート
フォルダに画像を随時保存していく。
画像はwebブラウザから見れるようにしておき、
約1秒ごとにリロードし続ける。
webCamera.py
import cv2
from time import sleep
cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FPS, 60)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1280)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT,720)
i = 0
while True:
ret, frame = cap.read()
#ドキュメントルートに保存する。写真の名前をナンバリング
cv2.imwrite("/var/www/image/" + str(i) + ".jpg", frame)
i = i + 1
#500ms停止
sleep(0.5)
#9000枚保存したら上書き
if(i>9000):
i=0
index.html
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<img src="0.jpg" name="jpg">
<script type="text/javascript">
i = 0;
imgTimer();
function imgTimer() {
i++;
console.log(i);
//画像パスのの書き換え
document.jpg.src = i.toString(10)+".jpg";
//900msごとに更新
setTimeout("imgTimer()", 900);
}
</script>
</body>
</html>
pythonファイルを実行して
$python3 webCamera.py
ブラウザから見るとこんな感じ

撮った写真を動画にしてみる
撮影した画像を動画に変換してみる
$ ffmpeg -f image2 -r 15 -i %d.jpg -r 15 -an -vcodec libx264 -pix_fmt yuv420p video.mp4
<参考文献>
FlaskとOpenCVを使ってWEBカメラで撮影した画像をストリーミングする - Qiita