■最後のおまけにもありますが、
基本的に、動画再生用のスクリプトはWebサーバに依存しません。
必要なのはおおまかに以下の手順です。
・サーバ側に「JW Player」や「flaver3」のようなswf形式のプレイヤーをWebサーバに設置
・動画や画像ファイルの配置、指定ファイルの修正
・オプションのjs形式のswf形式ファイルの埋め込み
・クライアント側の「flashplayer」やプラグインの導入
■動画再生サーバについて
参考:DTV - FLV動画再生の道
http://ex.b-area.org/Misc/MM/play_flv_movie.html
■FLAVER 3.0
参考:FLAVER 3.0ダウンロード
http://rexef.com/webtool/flaver3/download.html
参考:FLAVER 3.0設定方法
http://rexef.com/webtool/flaver3/installation.html
■debian lennyにapache2の導入
※本来はユーザ用のディレクトリを作成、作業しますが、
説明を省略する為、デフォルト設定のまま進めます。
$ sudo apt-get install apache2 zip
$ unzip flaver3.zip
$ sudo mv flaver3 /var/www
■w3mによるブラウザアクセスチェック
$ find /var/www | \
for list in `xargs`;do \
FILE=$(echo "$list" | sed s%/var/www%%); \
echo -en "${FILE}\t:"; \
w3m -no-proxy -dump_head http://`hostname -f`${FILE} | head -1; \
done
HTTP/1.1 200 OK
/index.html :HTTP/1.1 200 OK
/flaver3 :HTTP/1.1 200 OK
/flaver3/readme.txt :HTTP/1.1 200 OK
/flaver3/flaver.xml :HTTP/1.1 200 OK
/flaver3/flaver.swf :HTTP/1.1 200 OK
■「playlistA」の作成とplaylistの生成
$ sudo mkdir /var/www/playlistA
$ sudo cp -p /var/www/flaver3/flaver.xml /var/www/playlistA/
$ w3m -no-proxy -dump_head http://`hostname -f`/playlistA/flaver.xml
HTTP/1.1 200 OK
Date: Sat, 07 Jan 2012 15:25:13 GMT
Server: Apache/2.2.9 (Debian)
Last-Modified: Sat, 07 Jan 2012 15:15:33 GMT
ETag: "f0594-f1f-4b5f1a2fbcf40"
Accept-Ranges: bytes
Content-Length: 3871
Connection: close
Content-Type: application/xml
■以下のようになります。
$ sudo diff /var/www/flaver3/flaver.xml /var/www/playlistA/flaver.xml
6c6
< <title></title> <!-- タイトル -->
---
> <title>playlistA</title> <!-- タイトル -->
67,68c67,68
< <file></file> <!-- 動画・音楽ファイルパス (必須) -->
< <image></image> <!-- 画像・サムネイルパス -->
---
> <file>/movie/video.flv</file> <!-- 動画・音楽ファイルパス (必須) -->
> <image>/movie/video.jpg</image> <!-- 画像・サムネイルパス -->
78c78
< </flaver>
\ ファイル末尾に改行がありません
---
> </flaver>
■video.jpgとvideo.flvのチェック
$ w3m -no-proxy -dump_head http://`hostname -f`/movie/video.jpg | head -1
HTTP/1.1 200 OK
$ w3m -no-proxy -dump_head http://`hostname -f`/movie/video.flv | head -1
HTTP/1.1 200 OK
■webページの読み込みの設定
<html><head>
<title>playlistA</title>
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
</head>
<body>
<div align="center">
<table border="0">
<tr><td>
' > /var/www/playlist_a.html
<object data="/flaver3/flaver.swf"
type="application/x-shockwave-flash" width="640" height="480">
<param name="movie" value="/flaver3/flaver.swf" />
<param name="FlashVars" value="xml=/playlistA/flaver.xml" />
<param name="allowFullScreen" value="true" />
<param name="allowScriptAccess" value="always" />
</object>
' >> /var/www/playlist_a.html
</td></tr>
</table>
</div>
</body>
</html>
' >> /var/www/playlist_a.html
■配置したプレイリストの確認
$ wget --no-proxy http://`hostname -f`/playlist_a.html
$ cat playlist_a.html
<html><head>
<title>playlistA</title>
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
</head>
<body>
<div align="center">
<table border="0">
<tr><td>
<object data="/flaver3/flaver.swf"
type="application/x-shockwave-flash" width="640" height="480">
<param name="movie" value="/flaver3/flaver.swf" />
<param name="FlashVars" value="xml=/playlistA/flaver.xml" />
<param name="allowFullScreen" value="true" />
<param name="allowScriptAccess" value="always" />
</object>
</td></tr>
</table>
</div>
</body>
</html>
■ffmpegの導入
※荒っぽいが、outputが無いエラーと共にフォーマットを出力してくれるのを利用する。
ひとまず、動画本体よりもプレイヤーの指定サイズの方が大きい事が分かれば良しとします。
$ sudo apt-get install ffmpeg ffmpeg-doc
$ sudo ffmpeg -i /var/www/movie/video.flv 2>&1 | \
grep "Duration\|Stream" | sed s/","/"\n"/g
Duration: 00:00:06.2
start: 0.000000
bitrate: 64 kb/s
Stream
yuv420p
200x110 [PAR 0:1 DAR 0:1]
24.00 tb(r)
Stream
44100 Hz
mono
64 kb/s
$ sudo ffmpeg -i /var/www/movie/video.jpg 2>&1 | \
grep "Duration\|Stream" | sed s/","/"\n"/g
Duration: 00:00:00.0
start: 0.000000
bitrate: N/A
Stream
yuvj420p
352x256 [PAR 1:1 DAR 11:8]
25.00 tb(r)
参考:Multimedia
http://www.labunix.net/multimedia/flv.html
■swfobject版
※最新版はVer1.5だがリンク切れ
参考:SWFObject: Javascript Flash Player detection and embed script
http://blog.deconcept.com/swfobject/
■私のページから取得する
$ wget http://www.labunix.net/multimedia/swfobject.js
■シングルクォーテーションがあるので、ソースだけ示します。
※テストなので、「playlist_a.html」に追加します。
<script type="text/javascript" src="swfobject.js"></script>
<div id="playlistA">Display from flaver 3.0 with swfobject 1.5</div>
<script type='text/javascript'>
var list1 = new SWFObject('/flaver3/flaver.swf','flaver','640','480','9');
list1.addParam('flashvars','xml=/playlistA/flaver.xml&file=/movie/video.flv');
list1.addParam('allowfullscreen','true');
list1.addParam('allowScriptAccess','always');
list1.write('playlistA');
</script>
■一応整える。
改行で区切る、「 」を使う、
※ダミーで空の「main.css」を作成するなどすると、
以下のようになります。
$ wget --no-proxy http://`hostname -f`/playlist_a.html
$ cat playlist_a.html.1
<html><head>
<meta http-equiv="content-style-type" content="text/css">
<link href="./main.css" rel="stylesheet" type="text/css">
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
</head>
<body>
<div align="center">
<table border="0">
<tr><td>
<br/> <br/> <br/>
<object data="/flaver3/flaver.swf"
type="application/x-shockwave-flash" width="640" height="480">
<param name="movie" value="/flaver3/flaver.swf" />
<param name="FlashVars" value="xml=/playlistA/flaver.xml" />
<param name="allowFullScreen" value="true" />
<param name="allowScriptAccess" value="always" />
</object>
</td><td>
<br/> <br/> <br/>
<script type="text/javascript" src="swfobject.js"></script>
<div id="playlistA">Display from flaver 3.0 with swfobject 1.5</div>
<script type='text/javascript'>
var list1 = new SWFObject('/flaver3/flaver.swf','flaver','640','480','9');
list1.addParam('flashvars','xml=/playlistA/flaver.xml&file=/movie/video.flv');
list1.addParam('allowfullscreen','true');
list1.addParam('allowScriptAccess','always');
list1.write('playlistA');
</script>
</td></tr>
</table>
</div>
</body>
</html>
■おまけ
コメントを入れなかったので、不明なWebサーバと、バージョン不明の「JW Player」が私のページにはあります。
CERNのwebcastは「IIS」と「JW Player」でたまたま構成がほぼ同じでした。
以下その事を知った経緯について。
■神の粒子(ヒッグス)についてのCERNの発表
簡単に言うと、ある程度実験条件に制約はあるものの、
CERNによる複数の実験結果から、
ヒッグスの存在する可能性がある領域がほぼ特定された事により、
発見に至る可能性が高まったということでした。
「発見」ではなく、「発見に至る可能性」というところが
文章を複雑に書く必要がある理由です。
詳しくは以下を参照して下さい。
参考:Bosonul Higgs, descoperit la CERN? (Video)
http://www.ziare.com/magazin/cercetare/bosonul-higgs-descoperit-la-cern-video-1138012
参考:ヒッグス粒子、発見の可能性高まる 国際2グループ、来年に結論
http://sankei.jp.msn.com/science/news/111213/scn11121323300001-n1.htm
参考:「ヒッグス粒子探索に大きな進展」CERN統一見解(全文、邦訳)
http://sankei.jp.msn.com/science/news/111214/scn11121400270000-n1.htm
■CERNのwebcastサーバ
当日はイケてないWebサーバでカクカクの映像を見せられるか、
そもそも繋がらなかった人も多かったのではないでしょうか。
見れても訛りのある英語のリスニングが大変だったり。。。
私もその一人で、同サイトの別IP探したりしていましたが、
結局IIS7.5とJWPLAYER5.8の組み合わせで、
冗長性も見つからなかった為、諦めて寝ました。。。
参考:Download JW Player
http://www.longtailvideo.com/players/jw-flv-player/
※通常は自身のサーバのみ行うべきですが、
当日は接続すらままならなかった為、telnetで以下のようにしていました。
・ヘッダを見たいだけなので「index.html」は存在しなくてもかまいません。
・上記から「HEAD」では無く「GET」です。
・「User-Agent:」や「Host:」を省略して空Enterで生HTMLを得ます。
・「400 Bad Request」エラーページが返りますので、トラブルシュート時のみ。
$ telnet ${IPADDRESS} 80
GET index.html HTTP/1.0
[Enter]
参考:telnetでブラウズ(HTTP)
http://ash.jp/net/telnet_http.htm
■普通に繋がるときには、w3mの「-dump_head」オプションがあります。
$ w3m -dump_head http://webcast.web.cern.ch/webcast
HTTP/1.0 200 OK
Content-Type: text/html
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Sat, 07 Jan 2012 10:00:00 GMT
Content-Length: 7648
X-Cache: MISS from debian-lenny
X-Cache-Lookup: MISS from debian-lenny:3128
Via: 1.1 debian-lenny:3128 (squid/2.7.STABLE3)
Connection: close
■CERNの構成がIIS7.5とJWPLAYER5.8
前置きが長くなりましたが、普通にアクセスし、
HTMLソースを見ればすぐ分かります。
参考:Webcast
http://webcast.web.cern.ch/webcast/
■JW PlayerとFlashプラグインがあれば動きます。
※ページの名前がもう何と言うか。。。w
$ iceweasel http://webcast.web.cern.ch/webcast/test_channel.py &
■debianにflashplayerを導入するのは以下を参考。
2つ目は「関連記事」に色々あります。
参考:Debian Lenny に最新の Adobe Flash Player プラグインを入れる方法
http://d.hatena.ne.jp/sakurako_s/20101010/1286676729
参考:DebianのEpiphanyでFlashをインストールする方法・コマンド
http://www.miuxmiu.com/archives/2011/06/06/debian_epiphany_flash_install_command.html
■JW Playerは私の過去ページでも使っていました。
swfobject1.5、JWPlayerは4系(のはず。。。w)
参考:Multimedia
http://www.labunix.net/multimedia/index.html
参考:SWFObjectのドキュメントを日本語に翻訳してみたよ
http://www.trick7.com/blog/2006/06/15-135235.php
■私のページにアクセスし、ブラウザがFlashに対応していない場合は
Adobeのページにジャンプします。(ポップアップブロックされます)
※IE5以前にも対応(要る?)、Mozilla=Linux、IE=Windowsという甘い判定をしています。
■私のページでは、サーバ情報は出ません。
$ w3m -dump_head http://www.labunix.net
HTTP/1.0 200 OK
Date: Sat, 07 Jan 2012 13:29:18 GMT
Last-Modified: Sat, 07 Jan 2012 13:29:18 GMT
Accept-Ranges: bytes
Expires: Fri, 06 Jan 2012 13:29:18 GMT
Pragma: no-cache
Vary: Accept-Encoding
Content-Type: text/html
Content-Encoding: gzip
Cache-Control: private
Content-Length: 26
X-Cache: MISS from debian-lenny
X-Cache-Lookup: MISS from debian-lenny:3128
Via: 1.1 debian-lenny:3128 (squid/2.7.STABLE3)
Connection: close