« CentOS 5.5 へ kvm を導入-その4 | ホーム
2011年5月16日
CentOS で Air Video Server (alpha6) をつくる
iPhone / iPad アプリの Air Video がかなり便利です。いつでもどこでも自宅のビデオをみれるのが最高。どんなアプリなのかは Google で検索してもらうとして、Linux 向けの Air Vide Server がリリースされていたのでインストールしてみました。
Air Vide には新しめの x264 が必要なので、Cenr OS 5系列 なら最新版を持ってきて make します。Cent OS 6 なら rpmforge の x264 が割と新しいんでそのままでいいと思います。
他にも Air Video 向けのパッチのあたった ffmpeg をインストールするので、ffmpeg x264 使っているソフトを利用しているなら、レポジトリでインストールした ffmpeg と x264 は残して、AirVideo Server 用に入れる ffmpeg と x264 は configure --prefix/foobar して make & make install するのがおすすめです。
以下の例では、/opt/airvide/ 配下にインストールしています。かなり変態的な入れ方です(chroot なイメージ)が /usr/ や /usr/local を汚さずに済みます。
必要なライブラリや java を yum (rpmforge)で入れます。
# yum install yasm faac lame lame-devel faad2 faad2-devel SDL SDL-devel java-1.6.0-openjdk
x264 の最新版を git で持ってきて make & make install (Cent OS 5.6 の場合)。
# git clone git://git.videolan.org/x264.git # cd x264 # ./configure --prefix/opt/airvideo # make # make install
次に mpeg4ip を入れます。Air Video Server は mpeg4ip でサーバー上でムービーのエンコードをします。AirVideo クライアントから convert を使ってムービーのエンコードが必要ないなら入れなくてもいいです。Live Conversion は ffmpeg が担当しますのでなくても大丈夫(Cet OS 6 だと make 出来ないしね)。
sourceforge からソースをとってきて make & make install。
# tar zxvf mpeg4ip-1.5.0.1.tar.gz # cd mpeg4ip-1.5.0.1 # export PKG_CONFIG_PATH=/opt/airvideo/lib/pkgconfig # ./bootstrap # ./configure --prefix/opt/airvideo # make # make install
AirVideo のサイトから Air Video 向けパッチ済みの ffmpeg をダウンロードして、make & make install。
# wget http://www.inmethod.com/air-video/download/ffmpeg-for-2.4.5-beta6.tar.bz2 # tar jxvf ffmpeg-for-2.4.5-beta6.tar.bz2 # cd ffmpeg # export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig # ./configure --enable-pthreads --disable-shared --enable-static \ --enable-gpl --enable-libx264 --enable-libmp3lame \ --enable-libfaad --disable-decoder=aac \ --prefix/opt/airvideo # make # make install
Air Video Sever 本体と設定ファイルをダウンロード。
mkdir -p /opt/airvideo/server/AirVideo cd /opt/airvideo/server/ wget http://inmethod.com/air-video/download/linux/alpha6/AirVideoServerLinux.jar wget http://inmethod.com/air-video/download/linux/alpha1/test.properties
Air Video の設定ファイルを編集します。
# vi test.properties
Air Video の使うコマンドのパスの指定や、パスワードの設定をします。
server.port = 45631 path.ffmpeg = /opt/airvideo/bin/ffmpeg #path.mp4creator = /opt/airvideo/bin/mp4creator path.faac = /usr/bin/faac password = XXXXX
続いて Air Video で公開するディレクトリも指定。
folders = 公開名:ディレクトリ,公開名:ディレクトリ,
カンマで区切れば複数のディレクトリを公開できます。公開名には2バイト文字は使えません。
Air Vide の起動テスト。
# cd /opt/airvideo/server/ # java -jar ./AirVideoServerLinux.jar test.properties
この状態で AirVide クライントから接続できれば OK。 動いたことが確認できたら、CTRL+C で AirvVideo Server を止めます。
これだと、毎回コマンドプロンプトから AirVideo Server を起動しなければならなくて不便なので daemon 化(厳密には違う)する、rc スクリプトをでっち上げました。
#!/bin/sh # # chkconfig: 345 77 01 # description: Air Video is stream videos to iOS. # processname: airvideo # pidfile: /var/run/airvideo.pid # # Source function library. . /etc/init.d/functions . /etc/sysconfig/network JAVA=/usr/bin/java AIRVIDEO_DIR=/opt/airvideo/server BIN=AirVideoServerLinux.jar CONF=test.properties LOG=/var/log/airvideo/airvideo.log PID_FILE=/var/run/airvideo.pid LOCKFILE=/var/lock/subsys/airvideo RETVAL=1 start(){ echo -n "Starting AirVideo server: " if [ -f $LOCKFILE ]; then echo $"airvideo service is already running." RETVAL=1 else exec $JAVA -jar $AIRVIDEO_DIR/$BIN $AIRVIDEO_DIR/$CONF >> $LOG 2>&1 & RETVAL=$? touch $LOCKFILE ps -ef | grep $CONF | grep -v grep | awk '{print $2}' > $PID_FILE fi [ $RETVAL = 0 ] && success $"$base startup" || failure $"$base startup" echo return $RETVAL } stop(){ echo -n "Shutting down AirVideo server: " exec ps -ef | grep $CONF | grep -v grep | awk '{print $2}' | xargs kill -9 >/dev/null 2>&1 RETVAL=$? [ $RETVAL = 0 ] && success $"$base shutdown" || failure $"$base shutdown" rm -f $LOCKFILE rm -f $PID_FILE echo return $RETVAL } case $1 in start) start ;; stop) stop ;; restart) $0 stop $0 start ;; status) status airvideo if [ -f $lockfile ]; then RETVAL=0 else RETVAL=3 fi ;; *) echo "Usage: $0 {start|stop|restart|status}" RETVAL=1 #exit 1 ;; esac
大変センスのないスクリプトですが、まぁよしとします。
スクリプトファイル冒頭の部分が環境依存の設定なので適時変更してください。
JAVA=/usr/bin/java AIRVIDEO_DIR=/opt/airvideo/server BIN=AirVideoServerLinux.jar CONF=test.properties LOG=/var/log/airvideo.log PID_FILE=/var/run/airvideo.pid LOCKFILE=/var/lock/subsys/airvideo
このスクリプトを /etc/ini.d/ 以下に作成し、実行権限を与えて、ブート時に自動起動するように設定します。
# chmod +x /etc/ini.d/airvideo # chmod airvideo start Starting AirVideo server: [ OK ] # chkconfig airvideo
なお、この rc スクリプトでは AirVideoServerLinux.jar の吐くコンソールメッセージを /var/log/airvide/airvide.log として保存しているので、logrotate でローテートするようにしておきます。
# mkdir /var/log/airvideo # vi /etc/logrotate.d/airvideo /var/log/airvideo.log/airvideo.log { daily missingok rotate 30 }
毎日ローテートして、30日分のログを保存します。
アンインストールする場合にはサービス停止して、以下のコマンドでごっそり消せば OK。
# /etc/init.d/airvideo stop # rm -rf /opt/airvideo /etc/init.d/airvideo /etc/logrotate.d/airvideo /root/.airvideo /var/log/airvideo
トラックバック(0)
トラックバックURL: http://www.talkabout.jp/system/mt-tb.cgi/17
コメントする