概要
Raspberry Piに接続したWebカメラの映像をストリーミングしてVLCメディアプレイヤーで見る。
背景
古い賃貸マンションに住んでいて、備え付けられているのはチャイムのみ。身に覚えのない訪問客の姿を確認するために、ドアスコープを覗きにいくのが億劫。でも、ドアモニターをわざわざ買うと高いし、そもそも賃貸なので設置できる機種も限られる…。
そこで、ドアスコープにWebカメラを固定して、ストリーミングさせることにした。
使用するもの
- Raspberry Pi 3 Model B
- Logicool C270
- motion
USBカメラが接続されているか確認
$ lsusb
Bus 001 Device 004: ID 046d:0825 Logitech, Inc. Webcam C270
Motionインストール
$ sudo apt install motion
自動起動設定
/etc/default/motion
を編集する。
start_motion_daemon=yes
と設定。
撮影に関する設定
/etc/motion/motion.conf
を編集する。
以下をデフォルトから変更。
画像ファイルの出力はいらないのでオフ
# Output 'normal' pictures when motion is detected (default: on)
# Valid values: on, off, first, best, center
# When set to 'first', only the first picture of an event is saved.
# Picture with most motion of an event is saved when set to 'best'.
# Picture with motion nearest center of picture is saved when set to 'center'.
# Can be used as preview shot for the corresponding movie.
output_pictures off
動画のフレームレートを10(お好み)に
※効いてない疑惑あり。映像を見てると2fpsしか出ていない気が…
# Maximum framerate for stream streams (default: 1)
stream_maxrate 10
ストリームへの接続をローカルホストのみに制限をオフ
iPhoneやPCから見たいので
# Restrict stream connections to localhost only (default: on)
stream_localhost off
コントロール画面への接続をローカルホストのみに制限をオフ
iPhoneやPCから見たいので
# Restrict control connections to localhost only (default: on)
webcontrol_localhost off
稼働させる
$ sudo systemctl daemon-reload
$ sudo systemctl enable motion
$ sudo systemctl start motion
VLCメディアプレイヤーで映像を見る
「ネットワークストリームを開く」から設定する。
http://[RaspberryPiのIPアドレス]:8081/
※LAN内の任意のブラウザから同アドレスポート8080番にアクセスすることでも映像が見られる。
ドアへのカメラの取り付け
凝った工作ができる材料も工具もスキルもないので、以下のような手段でドアに取り付けた。
取り付けに使ったもの
- マグネットフック
- C270のパッケージ内部でカメラ本体がはめ込まれていた段ボール
- ガムテープ
手順
- フックに段ボールを引っ掛けて、いい感じの位置にフックをくっつける。
- 段ボールにはいい感じに折り目がつけられているので、そこにカメラをはめる。
- 段ボールの下端をガムテープでドアに固定する。
当然、見た目はすさまじく不格好である。
あと、「いい感じの位置にフックをくっつける」のが地味に大変。
本末転倒→解決
ドアの前にいなくてもドアの外側を見ることができるようになった。
しかし、ドアスコープをWebカメラで塞いでしまったため、ドアの前に立ったときに外が見えない。
常に映像を表示しつづけるものが欲しい…。
幸い、タイムセールで3480円で買ったものの、ほとんどキッチンタイマーと化していたFireタブレットがあったので、VLCアプリ(Google Playをゴニョゴニョしなくても、Fire用アプリストアで配信されている)を起動した状態で玄関に置いておくことにした。
Fireタブレットは無操作状態でスリープに入るまでの時間を最長30分までしか設定できないが、「ストリームの受信中は無操作扱いにならない」ようなので、映像を垂れ流すままにさせておける。
※嘘かもしれない。たまにスリープしている。
→確証はないが見当はついた。おそらくOSアップデートのタイミングでスリープしている。それ以外は基本映りっぱなし。