![]() |
◆ | Webカメラの認識確認 |
BAFFALO のUVC対応 BSW13K06H と言うWebカメラを利用してWebカメラサーバーを構築する | |
カーネルのバージョンが 2.6.26 以上ならUVCドライバーが標準でついているのでドライバーのインストールは必要ない | |
当然 CentOS 7 はUVCドライバーが標準でついている | |
まずはWebカメラが認識されているか確認 | |
[root@centos]# cat /sys/kernel/debug/usb/devices T: Bus=04 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=5000 MxCh= 2 B: Alloc= 0/800 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 3.00 Cls=09(hub ) Sub=00 Prot=03 MxPS= 9 #Cfgs= 1 P: Vendor=1d6b ProdID=0003 Rev= 3.10 S: Manufacturer=Linux 3.10.0-123.8.1.el7.x86_64 xhci_hcd S: Product=xHCI Host Controller S: SerialNumber=0000:00:14.0 C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 4 Ivl=256ms 途中略 T: Bus=03 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#= 7 Spd=480 MxCh= 0 D: Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs= 1 P: Vendor=058f ProdID=3831 Rev= 1.00 S: Manufacturer=Alcor Micro, Corp. S: Product=USB 2.0 PC Camera C:* #Ifs= 2 Cfg#= 1 Atr=80 MxPwr=500mA A: FirstIf#= 0 IfCount= 2 Cls=0e(video) Sub=03 Prot=00 I:* If#= 0 Alt= 0 #EPs= 1 Cls=0e(video) Sub=01 Prot=00 Driver=uvcvideo E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=8ms I:* If#= 1 Alt= 0 #EPs= 0 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo I: If#= 1 Alt= 1 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo E: Ad=82(I) Atr=05(Isoc) MxPS=3072 Ivl=125us I: If#= 1 Alt= 2 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo E: Ad=82(I) Atr=05(Isoc) MxPS=2048 Ivl=125us I: If#= 1 Alt= 3 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo E: Ad=82(I) Atr=05(Isoc) MxPS=1024 Ivl=125us I: If#= 1 Alt= 4 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo E: Ad=82(I) Atr=05(Isoc) MxPS= 512 Ivl=125us T: Bus=03 Lev=01 Prnt=01 Port=03 Cnt=02 Dev#= 3 Spd=12 MxCh= 0 D: Ver= 1.00 Cls=07(print) Sub=01 Prot=02 MxPS=64 #Cfgs= 1 P: Vendor=04b8 ProdID=0001 Rev= 1.00 S: Manufacturer=EPSON S: Product=USB Printer C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr= 2mA I:* If#= 0 Alt= 0 #EPs= 2 Cls=07(print) Sub=01 Prot=02 Driver=usblp E: Ad=01(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms 以下略 |
|
USBポート毎に接続機器が表示されている | |
我が家のサーバーの場合、バックパネルに USB 3.0 が2個、 USB 2.0 が4個、フロントパネルに USB 2.0 が2個、合計8個の USB ポートがありますので8個の状態が表示される | |
ちなみに3番ポートに USB カメラ、4番ポートにプリンターを接続すていますので上記の緑字のようになります | |
◆ | 関連ソフトのインストール |
OSのインストール時のインストール状況や他のソフトのインストール時の設定等により既にインストールされている場合もある | |
[root@centos]# yum -y install xorg-x11-drivers [root@centos]# yum -y install libjpeg-devel kernel-devel ncurses-devel |
|
libjpeg-devel kernel-devel ncurses-devel はカーネル関連ソフトなのでサーバーの再起動 | |
◆ | xawty のダウンロード |
[root@centos]# wget http://dl.bytesex.org/releases/xawtv/xawtv-3.95.tar.gz |
|
ダウンロードしたファイルを解凍 | |
[root@centos]# tar zxvf xawtv-3.95.tar.gz |
|
解凍したファイルのディレクトリの移動 | |
[root@centos]# mv xawtv-3.95 /usr/local/bin ( **** はHP公開ディレクトリ) |
|
ダウンロードした不要なファイルを削除 | |
[root@centos]# rm -rf xawtv-3.95.tar.gz |
|
◆ | xawtv インストール |
ディレクトリの移動 | |
[root@centos]# cd /usr/local/bin/xawtv-3.95 |
|
make 時に fbtools.c でエラーが発生するので修正 | |
[root@centos xawty-3.95]# vi /usr/local/bin/xawtv-3.95/console/fbtools.c /* * some generic framebuffer device stuff * */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <fcntl.h> #include <termios.h> #include <signal.h> #include <errno.h> #include <setjmp.h> #include <sys/ioctl.h> #include <sys/mman.h> #include <sys/wait.h> #include <sys/stat.h> #include <linux/kd.h> #include <linux/vt.h> #include <linux/fb.h> #include <asm/page.h> <--- コメント化 ↓ // #include <asm/page.h> #define PAGE_SHIFT 12 <--- 追記 #define PAGE_SIZE (1UL << PAGE_SHIFT) <--- 追記 #define PAGE_MASK (~(PAGE_SIZE-1)) <--- 追記 以下略 |
|
make 時に matrox.c でエラーが発生するので修正 | |
[root@centos xawty-3.95]# vi /usr/local/bin/xawtv-3.95/console/matrox.c #include "config.h" #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <fcntl.h> #include <inttypes.h> #include <sys/ioctl.h> #include <sys/mman.h> #include <asm/page.h> /* PAGE_SIZE */ <--- コメント化 ↓ // include <asm/page.h> /* PAGE_SIZE */ #define PAGE_SHIFT 12 <--- 追記 #define PAGE_SIZE (1UL << PAGE_SHIFT) <--- 追記 以下略 |
|
インストール | |
[root@centos xawty-3.95]# ./configure [root@centos xawty-3.95]# make [root@centos xawty-3.95]# make install |
|
◆ | webcam設定ファイルの作成 |
新しく設定ファイルを作る | |
[root@centos]# vi /etc/.webcamrc [grab] device = /dev/video0 text = "webcam %Y-%m-%d %H:%M:%S" fg_red = 255 fg_green = 255 fg_blue = 255 width = 320 height = 240 delay = 3 <--- 3秒毎に画像を撮影して archive で指定した場所に上書き保存する wait = 0 rotate = 0 top = 0 left = 0 bottom = -1 right = -1 quality = 75 trigger = 0 once = 0 archive = /home/***/webcam/webcam.jpg <--- 画像を保存する場所(注意:1) ※Webカメラと画像配信するサーバーが 違う場合は以下記述 [ftp] host = www <--- FTPのホスト名 user = webcam <--- FTPのユー pass = xxxxxx <--- FTPのパスワード dir = public_html/images <--- FTPのディレクトリ file = webcam.jpg <--- FTPのファイル名 tmp = uploading.jpeg passive = 1 debug = 0 auto = 0 local = 0 ssh = 0 |
|
各項目の内容は [grab] ・device ビデオデバイスを指定 ・text 画像左下に文字を挿入する場合のフォーマットを指定 %Y: 年、%m: 月、%d:日、%H:時、%M:分、%S 秒 ・width 画像の横サイズ(ドット) ・height 画像の縦サイズ(ドット) ・delay 画像を保存する間隔 10 なら 10 秒おきに画像を保存 ・quality JPEG の品質・画像圧縮率(0~100%) ・archive 保存先のパスとファイル名 ファイル名には %Y、%m 等が使用できる (注意:1)ファイル名には %Y、%m 等が使用できる がこの場合は永遠に画像を保存し続けるので注意が必要 当サイトではファイル名を指定することで毎回上書きされ常に最新の画像が1枚あるようにしている [ftp] ・host FTPサーバのホスト名 ・user FTPサーバのユーザーアカウント名 ・pass FTPサーバのユーザーアカウントのパスワード ・passive PASVモード ・dir Webスペースとして公開ができるディレクトリ先 ・file 保存するファイル名 ・local 1の時はローカルのディレクトリ(ここでは、/var/www/html/image)に画像を保存 0の時は他のサーバにftpアップロード |
|
.webcamrc のアクセス権変更 | |
[root@centos]# chmod 600 /etc/.webcamrc |
|
◆ | 画像保存用ディレクトリの作成 |
上記 /etc/.webcamrc で指定した画像を保存する場所 | |
[root@centos]# mkdir /home/***/webcam |
|
◆ | webcamの起動ファイル作成 |
|
|
※ 起動ファイルの設定内容はこちらで確認して下さい!!! | |
ファイルが出来上がったらデーモンのリロード | |
|
|
◆ | xawtv の起動 |
|
|
自動起動設定 | |
|
|
自動起動設定の確認 | |
|
|
◆ | webcam の手動起動 |
[root@centos]# webcam /etc/.webcamrc > /dev/null 2> /dev/null & |
|
◆ | webcam の手動終了 |
[root@centos]# killall webcam |
|
◆ | 画像表示用HTMLドキュメントを作成 |
下記ようなHTMLドキュメントを作成してWebサーバーにアップ | |
<HTML> <meta http-equiv="refresh" content="3"> <--- 3秒ごとに再表示する <BODY> <P><IMG src="/home/***/webcam/webcam.jpg" border="0" name="WEBCAM" width="320" height="240"></P> </BODY> </HTML> |
|
インターネットブラウザよりWebサーバーにアップした上記ファイルにアクセスして画像表示を確認 今回の設定では3秒毎に画像が更新され、それに対応して3秒毎にインターネットブラウザもリロードされるようになっている |
|