mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

Fedora12 – Webカメラ構築!

[ webサイト, サーバ構築 ] [ Fedora, Webカメラ ]

こんばんは。

今日は、今稼動中のうちのFedora12サーバへ Webカメラを構築しました。

この間まで稼動させていたFedora10サーバでは やっていたことなので、Fedora12でも、 と思って。。。

ただ、 Fedora12ではWebカメラがサポートされたようですが、 構築方法がわからないんで、 Fedora10のときに構築した方法で試してみようと思います。 (自分の過去記録「 Fedora10サーバにWebカメラを構築! 」等を参照)

※もちろん、USBカメラを接続し、[ /dev/video ] で認識されていることが前提です。

作業記録

1.「 xorg-x11-drivers 」インストール

X11のウィンドウでモニタするアプリなので,X11に依存する。 X11 がインストールされていない環境下では,webcam も make できない。 ということは、うちのFedoraはX環境入れてないので、以下を実行。

1
[root@pulsar ~]# yum -y install xorg-x11-drivers

2.その他インストール

その他make中に(ファイル不足で)エラーが出るので libjpeg-devel, kernel-devel, ncurse-devel をインストール。

1
2
3
[root@pulsar ~]# yum -y install libjpeg-devel
[root@pulsar ~]# yum -y install kernel-devel
[root@pulsar ~]# yum -y install ncurses-devel

3.「 config.h 」ファイル作成

カーネルのバージョンによっては linux/config.h ファイルが無いので、コンパイルに失敗します。 以下のコマンドでとりあえず空ファイルを作ればなんとかなります。

最近のバージョンでは以下の作業は不要です。

(一度コンパイルしてみて、ダメならこの作業をしてみるといいかも)

1
[root@pulsar ~]# touch /usr/src/kernels/(カーネルバージョン※)/include/linux/config.h

※カーネルバージョンは今回は[ 2.6.31.6-162.fc12.i686.PAE ]でした。

4.「 xawtv 」ダウンロード

キャプチャソフトであるxawtvをダウンロード&解凍する。

1
2
3
[root@pulsar ~]# wget http://dl.bytesex.org/releases/xawtv/xawtv-3.95.tar.gz
[root@pulsar ~]# tar zxvf xawtv-3.95.tar.gz
[root@nopulsarah ~]# cd xawtv-3.95

5.「 fbtools.c 」・「 matrox.c 」修正

Fedora10では、fbtools.c, matrox.c でコンパイルエラーとなるので、以下のように修正。 今回はFedora12だけど、同じように修正

1
2
3
4
5
6
7
8
9
10
11
12
[root@pulsar xawtv-3.95]# vi console/fbtools.c
24行辺り
// #include <asm/page.h>
#define PAGE_SHIFT      12
#define PAGE_SIZE       (1UL << PAGE_SHIFT)
#define PAGE_MASK       (~(PAGE_SIZE-1))

[root@pulsar xawtv-3.95]# vi console/matrox.c
11行辺り
// #include <asm/page.h> /* PAGE_SIZE */
#define PAGE_SHIFT      12
#define PAGE_SIZE       (1UL << PAGE_SHIFT)

6.パッチ適用

[ こちら ]からソースをダウンロードして、xawtv-3.95-patch.diff の名前で保存(xawtv-3.95フォルダに)後、パッチ適用。

1
2
3
4
[root@pulsar xawtv-3.95]# wget http://cvs.fedoraproject.org/viewvc/devel/xawtv/xawtv-3.95-fixes.patch?revision=1.1
[root@pulsar xawtv-3.95]# mv xawtv-3.95-fixes.patch?revision=1.1 xawtv-3.95-patch.diff
[root@pulsar xawtv-3.95]# patch -p1 -N < xawtv-3.95-patch.diff
patching file libng/plugins/drv0-v4l2.c

7.コンパイル&インストール

1
2
3
[root@pulsar xawtv-3.95]# ./configure
[root@pulsar xawtv-3.95]# make
[root@pulsar xawtv-3.95]# make install

8.webcam設定ファイルの作成

(当方は、/usr/local/etc/に作成) (以下はうちの環境の場合。 WebカメラとWebサーバは同一ホストなのFTP送信はしません。)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
[root@pulsar ~]# vi /usr/local/etc/webcamrc
[grab]
device = /dev/video0
text = "webcam %Y-%m-%d %H:%M:%S"
#infofile = filename
fg_red = 255
fg_green = 255
fg_blue = 255
width = 320
height = 240
delay = 30
wait = 0
#input = composite1
#norm = pal
rotate = 0
top = 0
left = 0
bottom = -1
right = -1quality = 100
trigger = 0
once = 0
archive = /var/www/html/images/webcam/%y%m%d%H%M.jpg

[ftp]
#host = XXX.XXX.XXX.XXX
#user = XXXXXX
#pass = XXXXXX
dir  = /var/www/html/images/webcam
file = webcam.jpg
tmp  = uploading.jpg
passive = 1
debug = 0
auto = 0
local = 1
ssh = 0

※ちなみに、上記の設定は、 30秒間隔でキャプチャし(自分のホームページ上では30秒間隔で表示するようにしているんで)、1分間隔で保存するようにしています。 そして、別途1日に1回保存した画像を削除するようにしています。 あまり、サーバに負担をかけないような設定にしていますが、いろんな利用方法が考えられると思います。

9.画像保存先作成

前述で設定した、画像保存先のフォルダを作成しておく。

1
[root@pulsar ~]# mkdir /var/www/html/images/webcam

10.「 webcam 」実行

webcamコマンド実行。

1
[root@pulsar ~]# /usr/local/bin/webcam /usr/local/etc/webcamrc > /dev/null 2> /dev/null &

11.「 respawnd 」インストール

Webカメラが突然落ちた場合に、自動で再起動してくれるツールをインストールします。

1
2
3
4
[root@pulsar ~]# wget http://wakita.no-ip.com/server/respawnd/download/respawnd.tar.gz
[root@pulsar ~]# tar zxvf respawnd.tar.gz
[root@pulsar ~]# cd respawnd-1.0.0
[root@pulsar ~]# make install

12.自動起動の設定

/etc/rc.d/rc.local に以下のコマンドを追加。

1
2
[root@pulsar ~]# vi /etc/rc.d/rc.local
/usr/local/bin/respawnd /usr/local/bin/webcam /usr/local/etc/webcamrc > /dev/null 2> /dev/null &

13.リブート

設定反映のため、リブート

1
[root@pulsar ~]# reboot

作業は以上です。

できばえは こちら 。 (うちの卓上です)

では、また。

Comments