2020年4月18日土曜日

WEBカメラ

以前スカイプ用に購入したロジクール製C270が使わなくなり、押入れに入れたままだったことを思い出し、ラズパイに接続してなにかできないかな〜と思い、引っ張り出してきました。
色々なサイトを見てみると、監視カメラとして利用していることが多いようなので、今回は監視カメラとして設置できるようにしてみた。

Raspberry Pi 3 Model B+
OS:Raspbian 10.3 (buster)
WEBカメラ:ロジクール HD Webcam C270

以下がUSBカメラを接続する前のlsusbの状態です。
pi@raspberrypi:~ $ lsusb
Bus 001 Device 004: ID 0411:023a BUFFALO INC. (formerly MelCo., Inc.)
Bus 001 Device 006: ID 0411:02c1 BUFFALO INC. (formerly MelCo., Inc.)
Bus 001 Device 005: ID 1c4f:0002 SiGma Micro Keyboard TRACER Gamma Ivory
Bus 001 Device 007: ID 0424:7800 Standard Microsystems Corp.
Bus 001 Device 003: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

キャプチャデバイスも存在していません。 →存在してるっぽい
pi@raspberrypi:~ $ ls /dev/video*
/dev/video10  /dev/video11  /dev/video12

接続すると以下が追加されました。
pi@raspberrypi:~ $ lsusb
Bus 001 Device 008: ID 046d:0825 Logitech, Inc. Webcam C270

接続して認識されると、ビデオキャプチャデバイスも生成されています。
pi@raspberrypi:~ $ ls /dev/video*
/dev/video0  /dev/video1  /dev/video10  /dev/video11  /dev/video12

これでWEBカメラを使う準備ができました。
次はアプリを使用しての画像取り込みになりますが、どのソフトが良いのかわからないので、
適当に調べて詳しく使い方が乗っているアプリを使うことにします。


★★guvcviewを使用してみました★★
$ sudo apt install guvcview
$ guvcview &
※使い方がよくわかりません。今回はパスします。

★★motionを使用してみた★★ 最新バージョン (4.1.1) 2020/2/25
$ sudo apt install motion
続行しますか? [Y/n] →y
motion.confという設定ファイルをいじりますが、設定ファイルを変更する前に別ファイル名でオリジナルをコピーしておいてください。
$ cd /etc/motion
$ sudo cp motion.conf motion.conf.bak
$ sudo nano motion.conf

confファイルの中を見てみると、、、
logは/var/log/motion/motion.logに出力されるようです。
画像のサイズを変更できるようです。(defaultは320*240)
エンコードにはffmpegを使用しているようです。
defaultのbpsは400000=50KByte/s
コーデックは”mpeg4, msmpeg4, swf,flv, ffv1, mov, mp4, mkv, hevc”を利用可能なようです。
保存先ディレクトリ”/var/lib/motion”のようです。

設定変更!!

$ sudo nano /etc/motion/motion.conf
(Ctrl+oで保存、Ctrl+xで終了)
$ sudo motion
ブラウザで”localhost:8081”と検索するとストリーミングされる。
ブラウザで”localhost:8080”と検索するとブラウザ上で操作できる。
実際に変更項目を確認しながらやるとベター。ALL → action → quitで停止できる。

★設定変更した項目★
daemon on
norm 1(使用するビデオ規格 0:PAL 1:NTSC 2:SECAM 3:PAL NC no colour)
width 640
height 480
framerate 12(640*480だと概ね12-14fpsしかでない)
output_pictures on(動体検知時に画像を出力する)
ffmpeg_video_codec mp4(mkvから変更)
locate_motion_mode on(動体マーカをつける)
text_double on(日付はフォントが小さいためonとしておけば、大きな文字になる。)
v4l2 17 →8or15 (C270は8:Motion-JPEGと15:YUYVに対応)
(https://motion-project.github.io/4.1.1/motion_guide.html#Options_Video4Linux_Devices)

※デフォルトのまま
stream_localhost on(ストリーム接続をローカルホストのみに制限する)
target_dir /var/lib/motion (静止画や動画を保存するディレクトリ)
ffmpeg_output_movies on(動体検知時に動画を出力する)
event_gap 60


では起動!
$ sudo motion
ブラウザで"localhost:8081"と検索窓に入力すると、カメラの映像を見ることができた。
動体検知された時の映像がtarget_dirである/var/lib/motionに保存されている。
ディレクトリ内のファイルを削除するには管理者権限が必要なので、
$ sudo rm /var/lib/motion/*.jpg
*ワイルドカードを使用すると便利。



監視カメラやWEBカメラとして使えるようになったけど、今のところ利用予定はなし。