RaspberryPi
RaspberryPiによるライブカメラ
 RaspberryPiのもっとも簡単な練習問題として、ライブカメラをつくります。いままでもIPカメラとフリーソフトLiveCapture2を用いライブカメラを動かしていました。それの構成はそのままにして、RaspberryPiによるライブカメラを追加することとします。
 手元に、ELECOM社のUSBカメラがあり、今まで使っていたIPカメラより、レンズが明るいので、それを用いることとしました。生産終了品ですが、同等品(サンワサプライ CMS-V37BK) があります。 (2019.3.17一部修正)
 UCAM-DLA200H F2.0  

RaspberryPiのUSBに接続
 RaspberryPiのUSBにカメラを接続します。

RaspberryPi側の準備については次の通りです。
(1) RaspberryPiを動くようにする。こちら
また、OSを最新化するため、次を実行しておきます。
$ sudo apt-get update
$ sudo apt-get upgrade

(2) 標準的なUVC(USB Video Class)規格は、Linuxでは標準で導入されているため、USBポートに挿せば認識します。
コンソールで
$ lsusb
とコマンドを入力すると、
Bus 001 Device 004: ID 056e:700a Elecom Co., Ltd

のようなメッセージが出て、認識されているのがわかります。


Motionを導入
 ネットワーク越しに監視するにはMotionというLinuxソフトが定番です。

$ sudo apt-get install motion
でインストールします。2019年3月現在、motion 4.0が最新です。

/etc/motion/motion.conf というファイルができています。このファイルで動作設定しますので、編集します。大変大きなファイルですが、大部分コメントで、主要部分のみ以下に記します。その名の通り、Motionは動体検知の機能がついていますが、私の場合はその機能はLiveCapture2で行いますので、使っていません。単に映像サーバとしての機能の設定になっています。

$ sudo nano /etc/motion/motion.conf
# This config file was generated by motion 4.0

daemon on
videodevice /dev/video0
v4l2_palette 8
input -1
norm 1

frequency 0
power_line_frequency -1
# Rotate image this number of degrees. 天井にカメラをつけたので180°
rotate 180
rotate 0
width 320
height 240
framerate 32
minimum_frame_time 0
netcam_keepalive off
netcam_tolerant_check off

rtsp_uses_tcp on
auto_brightness on
brightness 0
contrast 0
saturation 0
hue 0

roundrobin_frames 1
roundrobin_skip 1
switchfilter off
output_pictures off
output_debug_pictures off
quality 75
picture_type jpeg

ffmpeg_output_movies off
ffmpeg_output_debug_movies off

snapshot_interval 0

text_right 
text_left 

ipv6_enabled off

stream_port 8081
stream_quality 70
stream_motion off
stream_maxrate 8
stream_localhost off
stream_limit 0
stream_auth_method 0

webcontrol_port 8080
webcontrol_localhost off
webcontrol_html_output on 


 一番上のdaemon onは、デーモン (バックグラウンドプロセスとして動作するプログラム)として動かすための指定です。RaspberryPiを起動すると、自動で動きます。これを有効にするためには、次の編集が必要です。

$ sudo nano /etc/default/motion
# set to 'yes' to enable the motion daemon start_motion_daemon=yes 

 以上により設定を終了し、RaspberryPiを起動すると、動き出します。親のWindowsマシンのブラウザから、RaspberryPiのIPアドレスを指定して
http://192.168.1.xx:8081
をひらくと、映像が見えるはずです。(ブラウザはFirefoxにかぎるらしい)

LiveCapture2との連携
 従来から、動体検知のために、フリーソフトLiveCapture2をつかってきました。この分野では定番で、最近ではLiveCapture3が開発されたようです。いとも簡単に上記のRaspberryPiによるライブカメラと連携できました。

(1) LiveCapture2をダウンロードインストール。 
(2) LiveCapture2を起動すると、最初の起動時はカメラの設定がされていないためカメラの登録画面が出ます。「ネットワーク上に設置されたネットワークカメラ」を選択>次へ
(3) 接続するカメラの種類を選択してくださいで「LiveCapture2」を選択>次へ
(4) アドレスに http://192.168.1.xx:8081 を指定

これでRaspberryPiのカメラがLiveCapture2につながりました。
 このほかのLiveCapture2の動体検知、ファイルの保存、アップロードなどの設定は、ほかの方の通りです。たとえばこちら

RaspberryPiをケースに(ふたを開けたところ) 軒下にカメラをつるす