作ったもの
- 5 :l ★:2006/10/13(金) 12:53:34 ID:???
- ぜろちゃんねるスクリプト改 ファイルアップロード対応版+動画投稿プラグイン
http://lukewarm.s151.xrea.com/up/file/003.zip
ぜろちゃんねるスクリプト(http://0ch.mine.nu/)の2006/02/27版を改造して、ファイルのアップロードに対応させ、YouTubeのように動画ファイルの投稿を受け付けるプラグインを作成した。
Googleに買収されるなど、相変わらず話題沸騰のYouTubeであるが、動画ごときでここまで大きくなったのは意外な気がする。
適当な形式で投稿した動画が、多くのプラットフォームで再生可能な状態で公開されるというのは、確かに便利ではあるが、作成の難易度的にはそこら辺のWeb2.0的システムと大して変わらないだろう。
もっと色々なサイトが出来て、blogホスティングサービスとかのように群雄割拠な状態になっても良さそうなものだ。
投稿できる動画の容量や長さの制限が厳しく、エンコード後の画質もよいとは言えず、いちいちJavaScriptをONにしなければ見られないのも鬱陶しいし、ファイル本体のダウンロードがやりづらい作りも腹立たしいYouTubeなんかよりもユーザーフレンドリーなサイトは、作ろうと思えばいくらでも作れそうなものだが、なかなかめぼしいサイトは増えてこない。
たまに二匹目の泥鰌を狙ってサービスを始める企業があるが、大抵は念入りな検閲などで余計に使いづらいものとなって、当り障りのないホームビデオ展で終わっている。
参入を躊躇わせる原因として考えられるのが、回線やストレージ、エンコードのためのCPUパワーなど高いサーバスペックを必要とする割に儲かりにくそうなことと、著作権を侵害しているファイルがアップロードされまくると言うことだ。
著作権侵害で訴えられるのは困るし、違法ファイル対策をするのも面倒くさいし、対策をしたら人は集まらないだろうし、人が集まったらサーバ負荷が厳しいし、そこまで苦労して運営してもあまり儲かりそうにないとなっては、よほどの変態か間抜けでないとやりたがりはしないだろう。
一方、人々の需要の方はそれなりに多かったため、なんか知らんが頑張ってそこそこ使いやすいサービスを提供し続けている変態サイトがむくむくと成長していったと言うわけだろう。
一方、Web2.0とか動画サイトがもてはやされ始めるよりずっと前から存在しているファイルアップロード掲示板は、様々な中小サイトが軒を並べている。
そのほとんどは、個人が自宅サーバやホスティングサービスを利用して公開しているものだ。
アップローダーCGIスクリプトは様々な物が公開されており、それほど苦労せずに設置できる。
余ったリソースで適当に運営して、広告バナーでで小使稼ぎにでもなれば良し、面倒なことになりそうならトンズラしちゃえばいいやと、暇つぶし感覚で気軽にやってるところが多いのではないか。
一方、企業が提供するアップローダー的サイトが少ないのは、動画投稿サイトと同じような理由だろう。
そういえば、ブームの割には動画投稿サイト的なCGIが公開されているのは見かけないような気がする。たぶん、無いのだろう。ネットランナーとか言う本にも載ってなかったし。
ということは、スクリプトが公開されて簡単に設置できるようになれば、個人による動画投稿サイトも増えるのではないだろうか。
そんなことになって喜ぶ人がいるかどうかは分からないが、YouTubeとかGoogleの儲けを1セントでも削ってやれれば愉快である。
というわけで、作ってみることにした。
長い前置きだ。
ゼロから作成するのは面倒なので、2ch互換掲示板スクリプトの「ぜろちゃんねる」をベースに作成することに。過去に3回も設置したりして、つきあいはかなり長い。
レス機能とかが最初から出来ているので楽だ。
0chのプラグイン機構で実現できるかと思ったが、どうやらファイルアップロードには対応していないらしく、投稿フォームに「<input type="file">」を付けて投稿してもエラーになってしまった。
調べたところ、アップロードファイルの処理は普通に書くと面倒くさいが、CGI.pmというライブラリを使えば楽になるらしい。
幸い、フォーム情報のデコード部分を少し書き換えるだけで修正できた。
ファイルサイズや元のファイル名の取得、ファイル本体の移動などは、ついでにフォーム処理モジュール内に組み込んでおく。
あとの部分はプラグインとして実装すればいいだろう。
プラグインを追加すれば、画像掲示板とか汎用アップローダーとかにも使えそうだ。
受け取った動画は、面倒だから「dat」ディレクトリに一緒に保存してしまうことに。
FLVへのエンコードには、「ffmpeg」を使う。多くのフォーマットに対応したかなり強力なプログラムで、色々なツールのバックエンドとして使用されている。とりあえずWindows上でのテストには「携帯動画変換君」に入っていた物を使う。
CGIから実行しようとしたら、なにやらCygwin1.dllのバージョンが合わないとか言うエラーが出やがった。perl.exeをCygwinの物からActivePerlの物に変えたら、正常に実行されるようになった。
動画の表示には、「Flash FLV Player」というFlashファイルを使う。ダウンロードしながらの再生とかも可能で本格的だ。
こいつは再生前の「Click to play」画面に画像ファイルを表示できるらしい。
ffmpegには動画のフレームを画像として保存する機能も付いているということなので、エンコードのついでに画像を抜き出すようにしてみた。
アップロードされたままのAVIなどの動画ファイルも、embedタグで表示できるようにした。
ffmpegが使えない環境でもそれなりに動作するはずだ。再エンコードをされたくない人などにとってはこちらの方が喜ばれるかも知れない。
とりあえず自分でXviDエンコードしたAVIファイルは表示できたが、他の形式でうまくいくかどうかは定かではない。mp4とかは無理かも。
とりあえず動画をアップロードして掲載できるようになったが、さすがにCGIのリクエスト時に動画のエンコードを行っていると時間がかかる。
面倒なので、小さなファイル以外は別スクリプトで一つずつエンコードするようにした。
適当にwhileとsleepで常駐するモードと、全掲示版の「dat」ディレクトリを処理したら終了するモードの二つを用意。
タスクスケジューラーとかcronとかいうやつとかで実行するときは、1回のみ処理モードを使えばいいだろう。
そんなわけで、割とそれっぽいものができたような気がする。
しかし、例によって自分では全く使わないだろう。
自宅サーバを公開するのが面倒くさいし、利用してもらったところでうれしいことがあるわけでもない。著作権侵害で訴えられたりしたらやだし。
そもそも、動画なんてどうでもいい。さっさと廃れないものか。
28KB
0ch BBS 2005-10-08