2011年07月15日

オープンソース動画配信サーバ red5を試す

Javaでつくられた動画配信サーバがあるということで試してみた。
きっかけはお客さんから「なんか動画配信できるサーバないかな?」と聞かれたので、ちょっと調べるついでに立ててみた。

Flash Media Server互換のフリーストリーミングサーバらしいが、Flashの機能を生かしてチャットとかもできるらしい。

■ 環境
OS:CentOS5.6
red5 server 0.9.1

■ インストール
サーバにJava1.6をインストール
yum install java-1.6.0-openjdk java-1.6.0-openjdk-devel


http://www.red5.org/red5-server/ から red5のtarballをダウンロード

サーバ上でred5のtarballを解凍

以上で終了。

■ 起動
tarballを解凍したディレクトリからコマンド実行
# ./red5.sh &


■ 停止
コマンド実行
# ./red5-shutdown.sh &


iptablesを使っている場合は、TCP/1395とTCP/5080を開放しておく。

■ デモアプリ
http://[サーバのアドレス]:5080/ へアクセスすると、red5のページが開く。

デモ動画は最初から入っていないので、別途インストールする必要アリ。
サーバのトップページ中ほどに「Install a ready-made application」というリンクがあるのでクリック。
一番上の「oflaDemo」をイントールする。

Installボタンを押して一晩たっても終っていなかったが…インストールはされていたw

またトップページから「Launch a demo」>「OFLA Demo」へと進む。
砂嵐のデモ画面が開くので、右上のテキストボックスのアドレスを変更して「connect」を押す。
 「rtmp://localhost/oflaDemo」>「rtmp://192.168.0.1/oflaDemo」 など

そうすると動画の一覧が表示されるので、クリックすると動画再生が始まる。

このデモ動画はすべてflvなので、試しにH.264の動画を落として入れてみた。
動画を入れる場所は [red5インストールディレクトリ]/webapps/oflaDemo/streams/

動画を配置したら、disconnect>connect で接続し直すと一覧に表示される。


■ JW Player 5 で表示する

このデモ画面のままだとカッコ悪いし、音量もスライダーも無いので、フリーのJW Playerで動画を再生する。
http://www.longtailvideo.com/players/

解凍したフォルダをWebサーバにアップロードしておく。

サンプルのHTMLを以下のように編集すると、普通のプレイヤーっぽく表示される。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<script type='text/javascript' src='swfobject.js'></script>
<div id='preview'>This div will be replaced</div>
<script type='text/javascript'>
var s1 = new SWFObject('player.swf','ply','570','320','9','#ffffff');
s1.addParam('allowfullscreen','true');
s1.addParam('allowscriptaccess','always');
s1.addParam('wmode','opaque');
s1.addVariable('id','ply');
// s1.addVariable('backcolor','3333FF');
// s1.addVariable('lightcolor','00CC00');
s1.addVariable('screencolor','000000');
s1.addVariable('icons','false');
s1.addVariable('dock','true');
s1.addVariable('displayclick','fullscreen');
s1.addVariable('file', 'hogehoge.mp4');
s1.addVariable('streamer', 'rtmp://192.168.0.1/oflaDemo');
s1.addVariable('type', 'rtmp');
s1.write('preview');
</script>

</body>
</html>


プレイリストにしたとき、プレビューを自動で表示する方法がよくわからない…。

あと、0.9.1だとh.264の再生が遅い、カクカクすることがあるが、RC1だと速くなっているという情報もある。暇なとき確認してみようかな。


■ プレイリストをつける

JW Playerでは外部のXMLファイル(RSSとか)を使ってプレイリストを表示することができます。

HTMLはこんな感じ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
<body>

<script type='text/javascript' src='swfobject.js'></script>
<div id='preview'>This div will be replaced</div>
<script type='text/javascript'>
var s1 = new SWFObject('player.swf','ply','890','360','9','#ffffff');
s1.addParam('allowfullscreen','true');
s1.addParam('allowscriptaccess','always');
s1.addParam('wmode','opaque');
s1.addVariable('id','ply');
// s1.addVariable('backcolor','3333FF');
// s1.addVariable('lightcolor','00CC00');
s1.addVariable('screencolor','000000');
s1.addVariable('icons','false');
s1.addVariable('dock','true');
s1.addVariable('displayclick','fullscreen');

s1.addVariable("playlistfile","playlist.xml");
s1.addVariable("playlistsize","250");
s1.addVariable("playlist","right");
s1.write('preview');
</script>

</body>
</html>


XMLはutf-8で保存します。
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/" xmlns:jwplayer="http://developer.longtailvideo.com/trac/"> 
<channel>
<title>MRSS Playlist Playlist</title>
<item>
<title>アバター</title>
<jwplayer:streamer>rtmp://192.168.0.1/oflaDemo</jwplayer:streamer>
<media:content url="avatar.flv" />
<description>Sintel is a fantasy computer generated short movie. It's the third
release from the Blender Open Movie Project.</description>
<jwplayer:duration>888.06</jwplayer:duration>
</item>
<item>
<title>MealGear</title>
<jwplayer:streamer>rtmp://192.168.0.1/oflaDemo</jwplayer:streamer>
<media:content url="metalgear.mp4" />
<description>Metal Gear</description>
</item>
</channel>
</rss>


■ 参考サイト
★red5
http://www.red5.org/ 本家
http://www.red5.gr.jp/ 日本red5ユーザー会 あまり参考になるものはないかも…
http://osflash.org/red5/help チュートリアルとかいろいろ。英語。あまり見てない
ThinkIT 第2回 Red5をインストールしてデモアプリを試す
ストリーミングサーバーの構築
FMSでHTTPトンネリング

★JW Player
こっちの設定のほうが時間かかったかも…。
http://www.longtailvideo.com/players/ 本家
HTMLにflv,wmvのムービープレーヤーを埋め込む JW Player5 他
FLVをWEB上で再生する(その2)
Streaming Server Jw Player RTMP接続サンプル


posted by まきすけ at 19:08 | Comment(0) | TrackBack(0) | Linuxとか
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック