tande lab.

定点観測アップローダを作ってみる (1)

うちの隣に新しいマンションが建ち始めているので、せっかくなので定点観測を始めて見た。

30秒毎に一枚撮影し、24時間分溜まったら一枚一フレームで90秒の動画を生成し、youtubeにアップロードしてtwitterでつぶやくというもの。
できあがったものは こちら

できるまでにやったことを忘れないうちにメモ。

webcamの構築

用意したもの

カメラ
Logicool® Webcam Pro 9000h
ケース
100均で適当なの購入。側面が透明でゆがみの無いものが意外と少ない。

xawtvのインストール

webcam定点観測にはwebcamというのがいいらしいので、使ってみる。webcamはxawtvというツールに含まれているので、まずはxawtvをビルド。

% wget http://dl.bytesex.org/releases/xawtv/xawtv-3.95.tar.gz
% tar xzvf xawtv-3.95.tar.gz
% cd xawtv-3.95/
% ./configure
% make depend
% make

でmakeに失敗したので、このへん(http://www.mk-mode.com/wordpress/?cat=4)を参考に

  • console/fbtools.c
  • console/matrox.c

を修正して、さらににパッチをあてる

% wget http://cvs.fedoraproject.org/viewvc/devel/xawtv/xawtv-3.95-fixes.patch?revision=1.1
% patch -p1 -N < ../xawtv-3.95-fixes.patch

もう一度インストール

% ./configure
% make depend
% make
% sudo make install

で、うまくいったぽい。
インストール先は、

% whereis xawtv
xawtv: /usr/local/bin/xawtv /usr/local/lib/xawtv
% whereis webcam
webcam: /usr/local/bin/webcam

カメラをつないでみる。

/dev/video0 ができてるのを確認

% la /dev/video*
crw-rw----+ 1 root video 81, 0 2010-04-25 23:07 /dev/video0

dmesgも確認

sudo dmesg
usb 1-6: new high speed USB device using ehci_hcd and address 6
usb 1-6: New USB device found, idVendor=046d, idProduct=0809
usb 1-6: New USB device strings: Mfr=0, Product=0, SerialNumber=2
usb 1-6: SerialNumber: B81CC883
usb 1-6: configuration #1 chosen from 1 choice
uvcvideo: Found UVC 1.00 device <unnamed> (046d:0809)
input: UVC Camera (046d:0809) as /devices/pci0000:00/0000:00:1d.7/usb1/1-6/1-6:1.0/input/input9

ちゃんと写るかxawtvを起動してみる

xawtv

昔買った2000円くらいのカメラよりはだいぶきれい、けど思ったほどではなかった。

webcamコマンドが動くか確認する

webcamrcを/usr/local/etc/webcamrcに置くことにした。

webcamrcの中身

[grab]
device = /dev/video0
text =%Y/%m/%d %H:%M:%S

#text fg color
fg_red = 255
fg_green = 255
fg_blue = 255

#capture size
width = 1600
height = 1200

# capture interval(sec)
delay = 30
wait = 5 

#input = composite1
#norm = pal
rotate = 0
top = 0
left = 0
bottom = -1
right = -1 

quality = 80

# moving detection?
trigger = 0 

# once shot
once = 0

archive = /hogehoge/archive/%Y%m%d/%Y%m%d%H%M%S.jpg

[ftp]
#host = XXX.XXX.XXX.XXX
#user = XXXXXX
#pass = XXXXXX
dir  = /hogehoge/
file = current.jpg
tmp  = uploading.jpg
passive = 1
debug = 0
auto = 0 

#save to local only
local = 1

ssh = 0

archiveのディレクトリは無ければ作ってくれるようなので、日付毎のディレクトリにした。
waitとかtriggerとかよくわからない。あと左下のテキストを出さない方法も見つからず。とりあえずこのままでいいことにする。

これで

% /usr/local/bin/webcam /usr/local/etc/webcamrc &

とすると、30秒くらいに一枚写真を撮る事ができた。

one shotにしてcronで回すか、webcamプロセスを起動しっぱなしでとり続けるか悩んだが、cronはやめて、いつ止まってもいいようにrespawndを導入

% wget http://wakita.no-ip.com/server/respawnd/download/respawnd.tar.gz
% tar xzf respawnd.tar.gz     
% cd respawnd-1.0.0/   
% make  
% sudo make install 

% which respawnd
/usr/local/bin/respawnd

これで起動できるはず

% /usr/local/bin/respawnd /usr/local/bin/webcam /usr/local/etc/webcamrc &

Linuxを再起動してもいいように(しないけど)、/etc/rc.d/rc.localにも書いておく

% sudo vi /etc/rc.d/rc.local
 /usr/local/bin/respawnd /usr/local/bin/webcam /usr/local/etc/webcamrc &



0 comments
Submit comment