Red5で動画配信
YouTubeのような動画配信サーバを自社で用意する場合、Red5てやつがあるみたいです。
てか、外向けの動画配信ならYouTubeにアップしてそれを公開すればいいような気もしますが、とにかくやらなくてはならない状況にたった今陥りました。タイムリミットは3時間です。ではGo! [現在時刻:13:10]
グローバルに公開するサーバはM氏がXen仮想サーバをコピーして作ってくれました(OSはDebian GNU/Linux)。
さらにそこにログインしてみるとJavaの実行環境であるJREも既にありました。
さっそくRed5の本家サイトからtarボールの圧縮ファイルをダウンロードします。
$ wget http://trac.red5.org/downloads/1_0/red5-1.0.0-RC1.tar.gz
/usr/local以下にコピーします。
$ sudo cp red5-1.0.0-RC1.tar.gz /usr/local/ $ cd /usr/locaa $ sudo tar xvzf red5-1.0.0-RC1.tar.gz
今後の為に"red5"でシンボリックリンクを貼っておきます。
$ sudo ln -s /usr/local/red5-1.0.0 /usr/local/red5
動画サーバー専用のユーザを作ります。
$ sudo adduser movie
ディレクトリとその配下にあるサーバの所有者をmovieユーザに変更します。
$ sudo chown -R movie:movie /usr/local/red5-1.0.0
movieユーザ向けJavaのパスを通しておきます。
red5の起動
$ cd /usr/local/red5 $ ./red5.sh
つらつら〜っとコンソールに文字が表示されて止まったら起動完了のようです。
さっそくブラウザでアクセスしてみます。
稼働ホストがlocalhostの場合は
http://localhost:5080
でアクセス出来ます。こんな画面が表示されました。
「このビデオが見えてるなら、サーバは正常に動いてるよ〜」だそうです。
それからDebian流に自動起動するように設定します。
以下のような起動ファイルを"/etc/init.d/red5"として作成しました。
(Javaの経験が無い為にパス関係は適当です...w)
#! /bin/sh export RED5_HOME=/usr/local/red5 export JAVA_HOME=/usr/local/jre export PATH=${PATH}:${JAVA_HOME}/bin:/usr/local/jruby/bin export CLASSPATH=.:${RED5_HOME}:${RED5_HOME}/lib:${JAVA_HOME}/lib:/usr/local/java_class case "$1" in start) echo -n "Starting Red5 Streaming Server..." cd $RED5_HOME sudo -u movie /usr/local/red5/red5.sh 2>&1 1>/dev/null & echo "done." ;; stop) echo -n "Stopping Red5 Streaming Server..." cd $RED5_HOME sudo -u movie /usr/local/red5/red5-shutdown.sh echo "done." ;; restart) echo -n "Restarting Red5 Streaming Server..." $0 stop sleep 1 $0 start ;; *) N=/etc/init.d/$NAME echo "Usage: $N {start|stop|restart|}" >&2 exit 1 ;; esac exit 0
あとはシステム起動時に自動起動するように登録。
sudo update-rc.d red5 defaults 99
これで自動起動します。手動で起動したければ
$ /etc/init.d/red5 start
のように。あとstopとrestartもあります。
今回は動画配信のみが目的ですので、動画を所定のディレクトリに配置します。
デフォルトで公開ディレクトリはred5を解凍したディレクトリ以下の"webapps/root"ですので、ここに"douga.flv"のようなファイルを置いておけば
http://localhost:5080/douga.flv
としてアクセス出来ます。
とりあえず社内ネットワーク事情のうんたらかんたらも含めて、だいたい3時間で公開出来ました。タイムリミットぎりぎり(笑)