自宅サーバー ≫ Linux Server ≫ CentOS 6.5 ≫ ライブカメラサーバー(motion)

 
USBポートの確認
サーバー機(OS)がUSBポートを認識して使える状態になっているか確認
 
 
[root@centos]# lspci -v | grep USB    <--- 入力
   
途中省略
 00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M)
USB UHCI Controller
                                                            #1 (rev 02) (prog-if 00
[UHCI])
 00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M)
USB UHCI Controller
                                                            #2 (rev 02) (prog-if 00
[UHCI])
 00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M)
USB2 EHCI Controller (rev 02)
    
途中省略                                               (prog-if 20 [EHCI])
 
USB  UHCI   の文字があるので USB 1.1 が利用できる
USB2  EHCI  の文字があるので USB 2.0 が利用できる
Webカメラ・カーネルの確認
・UVC(USB Video Device Class)対応カメラかどうか?
・カーネルのバージョンが2.6.26以上かどうか?
UVC対応カメラでkernelのバージョンが2.6.26以上であればOSにUVCドライバが標準でついているので別途難しい作業はいらない
カーネルのバージョンの確認
 
 [root@centos]#
uname -a    <--- 入力
 
Webカメラの認識確認
上記の条件が揃っていれば下記のようにWebカメラは認識される
 
 
[root@centos]# dmesg | less    <--- 入力
   
途中省略
 usb 2-1: New USB device found, idVendor=0c45, idProduct=608f
 usb 2-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
 usb 2-1: Product: USB camera
    
途中省略
 
上記のように USB Camera が USB 2.0準拠の1番目のポートに接続されている
ffmpeg のインストール
画像・動画・音声の変換ソフト ffmpeg を 先にインストール
 
 [root@centos]#
yum -y install ffmpeg    <--- 入力
 
※ ffmpeg のインストール と motion のインストールの順番を変えると依存関係上の問題で motion のインストールが正常に行われない
gcc のインストール
コンパイル時に『コンパイラーが無い!』ってエラーメッセージが出るので予めインストールしておく
 
 [root@centos]#
yum -y install gcc    <--- 入力
 
motion のダウンロード
motion を下記サイトよりダウンロード (2014年8月現在の最新版は motion-3.2.12.tar.gz)
http://sourceforge.jp/projects/sfnet_motion/downloads
※上記サイトのディレクトリ名がlinuxに対応していないためサーバー機から直接ダウンロードできないので一旦Windows機にダウンロードし、FTP等でサーバー機の /usr/local/ へアップロードする
アップロードしたファイルを解凍
 
 [root@centos]#
tar zxvf /usr/local/motion-3.2.12.tar.gz -C /usr/local    <--- 入力
 
アップロードした不要なファイルを削除
 
 [root@centos]#
rm -rf /usr/local/motion-3.2.12.tar.gz    <--- 入力
 
motion のインストール
 
 [root@centos]#
cd /usr/local/motion-3.2.12    <--- 入力
 [root@centos]#
./configure            <--- 入力
 [root@centos]#
make && make install   <--- 入力
 
motion の設定ファイルの作成
 
 [root@centos]#
cp /usr/local/motion-3.2.12/motion-dist.conf.in /usr/local/etc/motion.conf   <--- 入力
 
motion の設定
 
 [root@centos]#
vi /usr/local/etc/motion.conf    <--- 入力
 
 
途中略

 ############################################################
 # Daemon
 ############################################################

 # Start in daemon (background) mode and release terminal (default: off)
 daemon on  
<--- on になっている事を確認(デーモンで起動)

 
途中略
 
 ###########################################################
 # Capture device options
 ###########################################################

 
途中略

 # The video input to be used (default: 8)
 # Should normally be set to 0 or 1 for video/TV cards, and 8 for USB cameras
 input 8  
<--- 8 になっている事を確認(USBカメラを使用)

 # The video norm to use (only for video capture and TV tuner cards)
 # Values: 0 (PAL), 1 (NTSC), 2 (SECAM), 3 (PAL NC no colour). Default: 0 (PAL)
 norm
0   <--- 変更 日本製(日本向け)のカメラはNTSC方式を採用している
  
↓        ※変更しなくても映る場合があるが天地左右がおかしくなる 可能性がある
 norm
1

 
途中略

 # Image width (pixels). Valid range: Camera dependent, default: 352
 width
320   <--- 画像の横サイズを変更したい場合は任意に変更


 # Image height (pixels). Valid range: Camera dependent, default: 288
 height
240   <--- 画像の横サイズを変更したい場合は任意に変更


 # Maximum number of frames to be captured per second.
 # Valid range: 2-100. Default: 100 (almost no limit).
 framerate
2   <--- 変更 1秒間に撮影するコマ数(2〜100 数が多い方が滑らかの映像になる)
  

 framerate
100

 
途中略

 ############################################################
 # Image File Output
 ############################################################
 
 # 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_normal 
on   <--- 変更(画像ファイルを保存しない)
  

 output_normal
off

 
途中略

 ############################################################
 # Live Webcam Server
 ############################################################

 # The mini-http server listens to this port for requests (default: 0 = disabled)
 webcam_port
8081   <--- ポートを変更したい場合は書き換える
  

 webcam_port
****

 # Quality of the jpeg (in percent) images produced (default: 50)
 webcam_quality
50   <--- 変更 ライブ画像の画質(1〜100 数が多い方が高画質になる)
  

 webcam_quality
100

 # Output frames at 1 fps when no motion is detected and increase to the
 # rate given by webcam_maxrate when motion is detected (default: off)
 webcam_motion off

 # Maximum framerate for webcam streams (default: 1)
 webcam_maxrate
1  <--- 変更 ライブ画像のフレームセット
  

 webcam_maxrate
30

 # Restrict webcam connections to localhost only (default: on)
 webcam_localhost
on  <--- 変更 ローカルホスト以外もライブ映像を配信
  

 webcam_localhost
off

 
以下略
 
motion 起動ディレクトリの作成
 
 [root@centos]#
mkdir -p /var/run/motion    <--- 入力
 
motion の起動スクリプトの作成
 
 [root@centos]#
cp /usr/local/motion-3.2.12/motion.init-Fedora.in /etc/rc.d/init.d/motion    <--- 入力
 
motion の起動スクリプトのアクセス権の変更
 
 [root@centos]#
chmod 755 /etc/rc.d/init.d/motion    <--- 入力
 
motion の起動スクリプトの編集
 
 [root@centos]#
vi /etc/rc.d/init.d/motion    <--- 入力
 
 
途中略

 ### END INIT INFO

 # Source function library.
 . /etc/rc.d/init.d/functions

 motion=${MOTION-/usr/bin/motion}
    <--- 追記
  

 motion=${MOTION-/usr/
local/bin/motion}
 prog=motion
 pidfile=/var/run/motion.pid
    <--- 追記
  

 pidfile=/var/run/
motion/motion.pid

 
以下略
 
ブラウザ確認
いったん motion を起動して動作確認
 
 [root@centos]#
/etc/rc.d/init.d/motion start    <--- 入力
 
インターネットブラウザを起動して

http://<ホスト名 or ドメイン名 or サーバーのIPアドレス>:8081/

にアクセスしてライブ映像が見れる事を確認

注意:IEでは見られません 確認した限りでは Firefox・Safari では見れました
Javaアプレットを使用したホームページを作成
上記のようにブラウザによって見れないものがあるのでJavaアプレットを使いブラウザを選ばないページを作成
・cambozola ストリーミング・イメージ・ビューアのダウンロード
 
 [root@centos]#
wget http://www.charliemouse.com:8080/code/cambozola/cambozola-latest.tar.gz   <--- 入力
 
・cambozola ストリーミング・イメージ・ビューアの解凍
 
 [root@centos]#
tar zxvf cambozola-latest.tar.gz    <--- 入力
 
・cambozola ストリーミング・イメージ・ビューアをWebサーバの公開ディレクトリに配置
 
 [root@centos]#
cp /root/cambozola-0.935/dist/cambozola.jar /home/www/    <--- 入力
 
※ /home/www/ は自分の環境に合わせる
・ダウンロードした cambozola ストリーミング・イメージ・ビューアを削除
 
 [root@centos]#
rm -rf /root/cambozola-latest.tar.gz    <--- 入力
 
・ホームページ作成
下記の内容を記述したページを作りWebサーバの公開ディレクトリに配置

 
< applet code=com.charliemouse.cambozola.Viewer
 archive=cambozola.jar width=320 height=240>
 <param name=url value=http://xxx.xxx.xxx.xxx:8081>
 </applet>

 
※ xxx.xxx.xxx.xxx はサーバーのIPアドレス
なお、一部ブラウザ(古いIE)では cambozola Viewer は Java がインストールされていないため正常に表示できない場合がありますのでその時は http://java.com/ja/download/index.jsp より Java をインストールして下さい
ブラウザ確認
上記で作成したファイルにアクセスしてライブ映像が見れる事を確認
ただし、Java7 以降で はセキュリティが強化され Java アプリケーションを実行しようとすると下図のようなメッセージ が表示され、実行がブロックされてしまいます。

解決策としては Java の設定で特定のサイトを例外としてブロックしないように設定します。
『スタート』→『Java』→『Congigure Java』をクリック

『セキュリティ』タブをクリック

『サイト・リストの編集(S)』をクリック

『追加(A)』をクリック

『場所』に Java の実行を許可するサイトのアドレスを入力し『追加(A)』をクリック、その後『OK』をクリック

『続行』をクリック

『OK』をクリック

これで設定は終わりです。
再度、motion でライブ映像を見ようとすると下記のような“セキュリティ 警告 ” メッセージが表示されます。

『リスクを受け入れて、このアプリケーションを実行します。(I)』にチェックを入れ『実行(R)』をクリックします。

これで、motion のライブ映像を見る事ができます。
motionの起動
 
 
[root@centos]# /etc/rc.d/init.d/motion start    <--- 入力
 
motionの自動起動設定
 
 
[root@centos]# chkconfig motion on    <--- 入力
 
自動起動設定確認
 
 [root@centos]#
chkconfig --list motion    <--- 入力
 motion     0:off  1:off  2:on  3:on  4:on  5:on  6:off
    <--- 2・3・4・5 が on になっていればOK
 
motionの終了
 
 
[root@centos]# /etc/rc.d/init.d/motion stop    <--- 入力
 
motionの再起動
 
 
[root@centos]# /etc/rc.d/init.d/motion restart    <--- 入力
 
サンプル映像
サンプル映像は ここ をクリックして下さい
監視カメラ
監視カメラの設定はここ

戻る