定点観測アップローダを作ってみる (1)
うちの隣に新しいマンションが建ち始めているので、せっかくなので定点観測を始めて見た。
30秒毎に一枚撮影し、24時間分溜まったら一枚一フレームで90秒の動画を生成し、youtubeにアップロードしてtwitterでつぶやくというもの。
できあがったものは こちら
できるまでにやったことを忘れないうちにメモ。
webcamの構築
用意したもの
- ケース
- 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 &