自宅サーバー ≫ Linux Server ≫ CentOS Stream 8 ≫ Webカメラサーバー(xawtv)

 
Webカメラサーバーの概要
1.xawtv を使い静止画を連続撮影
2.その画像を連続配信
USBカメラ認識確認
 
 [root@centos]#
lsusb
 Bus 002 Device 002: ID 8087:8000 Intel Corp.
 Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 Bus 001 Device 002: ID 8087:8008 Intel Corp.
 Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
 Bus 003 Device 002: ID 0411:0165 Product: USB 2.0 PC Camera     
<--- USBカメラ認識確認
 Bus 003 Device 004: ID 058f:3831 Alcor Micro Corp.
 Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 
ビデオデバイス確認
 
 [root@centos]#
/dev/video*
 -bash: /dev/video0: Permission denied    
<--- /dev/video0 を確認
 
EPELリポジトリの追加
既にインストールされている場合は不要
 
 [root@centos]#
dnf -y install epel-release
 
xawty のインストール
xawty を epel-release よりインストール
   
 [root@centos]#
dnf -y --enablerepo=epel install xawtv
 
xawtv の起動と動作確認
サーバー機の端末より下記を実行

 
 [root@centos]#
xawtv -c /dev/video1
 

nVidia グラフィックカードを使っている場合、以下のようなエラーが表示される場合がある

 
 X Error of failed request: XF86DGANoDirectVideoMode
 Major opcode of failed request: 139 (XFree86-DGA)
 Minor opcode of failed request: 1 (XF86DGAGetVideoLL)
 Serial number of failed request: 69
 Current serial number in output stream: 69
 

下記を実行

 
 [root@centos]#
xawtv -nodga
 

xawtv が起動しカメラの映像が映し出されればOK
webcam設定ファイルの作成
   
  新しく設定ファイルを作る
   
   
 [root@centos]#
vi /etc/.webcamrc
 
[grab]
 device = /dev/video1
 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-tv/webcam-tv.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
 
   
webcam の手動起動
   
   
 
[root@centos]# webcam /etc/.webcamrc > /dev/null 2> /dev/null &
 
   
   
webcam の手動終了
   
   
 
[root@centos]# killall webcam
 
   
画像表示用HTMLドキュメントを作成
下記ようなHTMLドキュメントを作成してWebサーバーにアップ
   
 
[root@centos]# vi /home/****/www/webcam-tv.html
 
<HTML>
 <meta http-equiv="refresh" content="3">   
<--- 3秒ごとに再表示する
 <BODY>
 <P><IMG src="webcam-tv/webcam-tv.jpg" border="0" name="WEBCAM"
                                                       width="320" height="240"></P>
 </BODY>
 </HTML>

 
  インターネットブラウザよりWebサーバーにアップした上記ファイルにアクセスして画像表示を確認

今回の設定では3秒毎に画像が更新され、それに対応して3秒毎にインターネットブラウザもリロードされるようになっている

戻る