インターネットLive放送



Live放送の準備
友人が始めて、私もやってみたくなったので年末年始のイベントにしちゃいます。
放送といってもTVのように動画が見れるストーリーム放送ではなく定期的に画像がアップロードされるだけなのでエコ環境に配慮した21世紀にピッタリのネットワークに優しい遊びです。;-)
画像撮影にはデジタルカメラを用い、あとはサーバーにアップロードするだけの単純な仕組みです。
撮影等のカメラ操作もUNIXでやることは出来るようですが、今回はデジカメ付属ソフトを用いてお手軽に済ませています。なにしろ遊びだから、こんなもんでいいんではないかしら。
どうしてもカメラ操作もUNIXでという方はこのへんが参考になるでしょう。itojun.org とか gPhoto
では、はじまりはじまり。

[1]ケーブリング(配線とか)

デジカメとPC(lutecia)をシリアル接続し、カメラを窓に置いて準備完了。説明の必要なしですな。
 

[2]撮影とPC(lutecia)への画像のダウンロード

WindowsNT環境(lutecia)でデジカメ付属ソフト(PhotoLabo Communicator 4.0)を起動し自動撮影の設定をします。何分毎に撮影するか、撮影後の画像をPCの何処に格納(ダウンロード)するかを設定します。
たったこれだけで自動的に撮影した画像をPCに保存することができるなんて簡単すぎかもしれない。
わざわざ書き記すこともないですね。
 

[3]ISPのサーバへアップロード

あとはWindowsNT(lutecia)からFreeBSD(clio)へ画像を持っていきHTML文書といっしょにISPにアップロードするだけです。clioへはファイル共有(Samba)を使うことも考えたのですが「このNTはServer・・・最初からFTPサーバーでもあった」ということで単純にFTPでファイル転送します。なにを隠そう、NTのFTPサーバーなんていままで使ったことがありません。早速、インターネットサービスマネージャでチョイチョイと設定変更、簡単なものです。参考のために設定画面です。


 

あと蛇足ながらWindowsで動作するFTPサーバが欲しい方はこのへんがお勧めです。

War ftp daemon

解説としてはこのへんかな。

War FTP Daemon 導入ガイド
hikoのウェブビギナー向けお役立ちツールの解説ページへようこそ
WarFTPd入門

探せばたくさん見つかりますので以下省略です。
 

さて、これで道具はそろいました。完全自動化に向けてスクリプトを書きましょう。

(1)FTPでluteciaからclioへファイル転送。ファイル転送後、PC上のファイルは全て削除。
ホームディレクトリに .netrc ファイルを作成しFTP自動化の準備。中身はこんな感じ。
 

machine lutecia.home.or.jp  login NAME password PASS
machine ISP.hi-ho.ne.jp  login NAME password PASS


あとは実際にプロンプトからFTPする様子を覚えておいてヒアドキュメントしてしまいましょう。
 

ftp lutecia << END
binary
get DSC00001.jpg
prompt off
mdelete *.*
quit
END
(2)HTML作成。
日付と時刻ぐらいは表示させたいのでHTML文書に埋め込みます。オリジナルのHTML文書を作っておき、アップロード時にsedコマンドで置換します。

オリジナルのHTML文書はこんな感じ。
 

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
   <meta name="Author" content="yuzo">
   <meta name="GENERATOR" content="Mozilla/4.7 [ja] (WinNT; I) [Netscape]">
   <title>Live! 現在の天気</title>
</head>
<body text="#004080" bgcolor="#F1F1F1" link="#0000E3" vlink="#008080" alink="#DD0000" background="wall.gif">
&nbsp;
<center>
<p><b><font size=+1>簡易Live!放送(静止画像)</font></b>
<hr WIDTH=60% SIZE=3 ALIGN='CENTER'></center>

<p>
<hr WIDTH='80%'>
<center><table BORDER=0 CELLSPACING=0 CELLPADDING=2 WIDTH="80%" >
<tr>
<td COLSPAN="2"><font size=+1><font color="#999999">■ </font><b><tt><font color="#006B39">Tue
Jan&nbsp; ##DATE## </font></tt></b></font>
<center>
<p><img SRC="LIVE.jpg" BORDER=2 ></center>
</td>
</tr>

<tr>
<td COLSPAN="2">
<hr></td>
</tr>
</table></center>

<center><a href="http://www.amy.hi-ho.ne.jp/yuzo/"><img SRC="bunner.gif" BORDER=0 height=31 width=88></a></center>

<hr WIDTH='80%'>
<br>&nbsp;
</body>
</html>

 
この文章中の##DATE##を日付&時刻に変換するのです。慣れてしまえば簡単なことですが・・こんな感じです。
 
sed -e "s/##DATE##/`date`/" Live-1.html.org > Live-1.html


(3)ISPへアップロード。
できあがったHTML文書と画像ファイルをISPへアップロードしましょう。さきほどと同じようにFTPを使用します。
 

ftp ISP.hi-ho.ne.jp << END
progress off
cd html
binary
put LIVE.jpg
put Live-1.html
quit
END


以上のことを踏まえて出来上がったのがこのスクリプトです。名前はnt2bsd2ISPとしました・・ネーミングセンス悪いぃ・・・
 
 

#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
export PATH

cd /usr/local/Livecamera

ftp lutecia << END
binary
get DSC00001.jpg
prompt off
mdelete *.*
quit
END
 

sed -e "s/##DATE##/`date`/" Live-1.html.org > Live-1.html

ftp ISP.hi-ho.ne.jp << END
progress off
cd html
binary
put LIVE.jpg
put Live-1.html
quit
END

(4)実行権をつけて、cronで定期的に起動させよう。

実行権をつけて。

chmod 777 nt2bsd2ISP


定期的に実行するために/etc/crontabファイルに記述。今回は「毎時5分、20分、35分、50分に実行」するようにしました。
 

5,20,35,50   *   *   *   *   root   nt2bsd2ISP


これで出来上がり。この文章作るほうが時間がかかるなんて・・・記録するって面倒なもんだね。