Motionで複数のカメラをブラウザ上で確認する

初めに

犬を飼っている我が家ですが、場合によってはイッヌだけが家にいる時があります。
ウェルシュ・コーギー・ペンブロークのクローバーです。メチャかわいい。
母親「職場の人が古いスマホを見守りカメラにしてるんだって」
という話から思いついた構想です。それとしばらく日本を離れるので太平洋を越えたアメリカからも
様子を見たい。

必要なカメラ

普段は2階リビングにいるクローバーですが、夏場は1階のケージにいます。
当サイトを動かしているラズパイやイントラネットを構成しているラズパイ、
その他ルーター群も監視したい。
必要なカメラは3台。クローバーは動き回るので可動式のカメラが必要。
自宅にある古いUSBカメラをネットワーク機器監視用として使うとして、他に2台・・・
Amazonで1台ポチって実験してうまくいったので2台にしました。

最初に購入したカメラ
VStarcam C24

1階に設置

2台目のカメラ
‎GENBOLT GB102H

2階の酒用冷蔵庫上に設置。
下方の視界を確保するため、レゴでカメラマウントを作成。

10年前?くらいのBUFFALO製USBカメラ
ルーター監視用のためこれまたレゴでマウントを作成

前の2つはネットワークカメラのため接続に使うケーブルはLANケーブルで最後のUSBカメラはその名の通り、USBケーブルでラズパイに直接接続されています。
ネットワークカメラについては端末がMACアドレスを持っています。
MACアドレスを調べたらRTX1210に設定を流し込み、カメラのMACアドレスとIPアドレスを紐付けます。

#MACアドレスとIPの紐付け
dhcp scope bind 1 192.168.*.* ethernet **:**:**:**:**:**

ネットワークカメラと言う機器のため、2つともブラウザから首振りや赤外線の切り替えなどが可能です。
自宅ネットワーク内におけるカメラの設置位置は下の図のようになります。

VStarcam C24へのアクセスについては少し厄介です。
ポートが固定ではなく、電源を入れる度に変動するので以下のサイトからカメラのポートをスキャンするソフトをダウンロードします。
https://www.vstarcam.com/software-download
ページ内の「IP Camera Finder」をダウンロードして起動します。

このソフトを走らせるとポート番号が判明します。
画面右下の「Inner access」をクリックするとカメラにアクセスできます。

GENBOLTカメラについては80番ポートで通常通りアクセス可能。

http://192.168.2.*/web/admin.html

motion

どうやら本来は動体検知とかに使うらしいのですが、我が家では3台のカメラを同時にブラウザから確認するとためだけに使います。
ubuntuのターミナル画面から

#インストール
sudo apt-get install motion
#configファイル編集
sudo nano /etc/motion/motion.conf

設定ファイルですから、もちろん環境によって設定すべき項目は変わります。
以下に自分の環境でのコンフィグを残します。

# System control configuration parameters
#デーモンをoffにすると毎度起動コマンドを打ち込む必要があります。設定が固まったらonに
daemon on
setup_mode off
; pid_file value
log_file /var/log/motion/motion.log
log_level 6
target_dir /var/lib/motion
; vid_control_params value
; netcam_url value
; mmalcam_name value
; mmalcam_control_params value
# Image Processing configuration parameters
v4l2_palette 8
width 800
height 600
framerate 24
text_left hoge_Camera
text_right %Y-%m-%d\n%T-%q
# Motion detection configuration parameters
emulate_motion off
threshold 1500
; noise_level 32
despeckle_filter EedDl
minimum_motion_frames 1
event_gap 60
pre_capture 3
post_capture 0
# Script execution configuration parameters
; on_event_start value
; on_event_end value
; on_movie_end value
# Picture output configuration parameters
picture_output off
picture_filename %Y%m%d%H%M%S-%q
# Movie output configuration parameters
movie_output off
movie_max_time 60
movie_quality 45
movie_codec mkv
movie_filename %t-%v-%Y%m%d%H%M%S
# Webcontrol configuration parameters
#motionを提供するポートの指定
webcontrol_port 8080
webcontrol_localhost off
webcontrol_parms 2
# Live stream configuration parameters
stream_localhost off
# Directory to read '.conf' files for cameras.
#複数のカメラがあるため、カメラごとに設定ファイルを作成しここでは記載しない
camera_dir /etc/motion/conf.d

ここから3台のカメラそれぞれの設定ファイルを作ります!

#カメラ設定ファイルのディレクトリを作成
sudo mkdir /etc/motion/conf.d

まずは10年もののUSBカメラから

#設定ファイルのディレクトリへ移動
cd /etc/motion/conf.d
#設定ファイル作成
sudo nano camera1

USBカメラのコンフィグ↓

#カメラ名
camera_name 1F-RTX1210
#ビデオパラメーター
input -1
#Valid values: 0 (PAL), 1 (NTSC), 2 (SECAM), 3 (PAL NC no colour)
norm 1
# USBカメラのソース
videodevice /dev/video0
# フレーム幅
width 640
# フレーム高
height 480
# フレームレート
framerate 15
# カメラ映像配信用ポート番号
stream_port 8081
# 動画配信用フレームレート
stream_maxrate 15

同じようなUSBカメラ使ってるのに映像取得ができないってなった場合はカメラのソースが異なっている可能性
がありありです。この場合は以下のコマンドで接続されているカメラを確認します。

sudo v4l2-ctl --list-devices

自分の環境の場合は・・・

bcm2835-codec-decode (platform:bcm2835-codec):
	/dev/video10
	/dev/video11
	/dev/video12
	/dev/media0

bcm2835-isp (platform:bcm2835-isp):
	/dev/video13
	/dev/video14
	/dev/video15
	/dev/video16
	/dev/media1

BUFFALO BSW13K07H Webcam: BUFFA (usb-0000:01:00.0-1.3):
	/dev/video0
	/dev/video1
	/dev/media2

このように表示されます。一番下にBUFFALOと表示されているので一番上の/dev/video0と記載してます。
もし違う表記ならコンフィグも訂正しましょう。

続いては2台のネットワークカメラ
1階カメラ(VStarcam C24)のコンフィグは以下のように

#カメラ名
camera_name 1F-ONVIF
#netcam_url
netcam_url rtsp://admin:[email protected].*:10666/tcp/av0_0
# フレーム幅
width 640
# フレーム高
height 480
# フレームレート
framerate 15
# カメラ映像配信用ポート番号
stream_port 8082
# 動画配信用フレームレート
stream_maxrate 15

rtsp://~のポート番号はVStarcam C24にブラウザからアクセスして、
設定→Network Settings→Basic Network Settingsにて確認します。
RTSP Portという項目があるため、その数字をコピペします。

2階カメラのコンフィグは以下の通り。

#カメラ名
camera_name 2F-ONVIF
#netcam_url
netcam_url rtsp://admin:[email protected].*:554/11
# フレーム幅
width 640
# フレーム高
height 480
# フレームレート
framerate 15
# カメラ映像配信用ポート番号
stream_port 8083
# 動画配信用フレームレート
stream_maxrate 15

全ての設定を終えたら動かします

sudo motion
#設定変更等でリセットが必要な場合
sudo systemctl restart motion

#アクセス先
http://ラズパイのIP:8080

完成

ブラウザから3つのカメラを同時に監視できるようになりました。

高木
  • 高木

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です