Icecastのコンパイルとインストール
動画をストリーミングするにはCoTVを使うけど、音楽(mp3, oggなど)をストリーミング配信するには何がいいだろうと、オープンソースのIcecastを教えてもらったのでコンパイル→インストールしてみた。
環境はCentOS 5.3
参考にしたのは次のサイト
Icecastで行う音楽ファイルの独自ブロードキャスト
必要なソフトのインストール。
# yum install libxslt-devel libogg-devel libvorbis-devel vorbis-tools libshout-devel libtheora-devel speex-devel
kernel-develとかGCCとか怒られたら適宜対応。あとでREADMEを見て気付いたけどlibshout-develはいらないかも。
コンパイルとインストール
# tar xzvf icecast-2.3.2.tar.gz
# cd icecast-2.3.2
# ./configure
# make
# make install
設定ファイルは/usr/local/etc/icecast.xml
authenticationノードのpasswordは適宜変えておく。
# icecast -c /usr/local/etc/icecast.xml
で起動してみると、rootで起動すべきではないというのとログファイルが書き込めないとエラーが出るので、icecast.xmlで実行ユーザーを変更
<changeowner>
<user>apache</user>
<group>apache</group>
</changeowner>
ログは
# mkdir /var/log/icecast
# chown apache /var/log/icecast
<logdir>/var/log/icecast</logdir>
一応hotnameも設定しておく
<hostname>hoge.jp</hostname>
# icecast -c /usr/local/etc/icecast.xml
で無事起動したみたい。
http://<サーバーアドレス>:8000/
にアクセスするとデフォルトの画面が参照できる。
起動スクリプトがどっかにあるだろうと探したけど見つからない。
なのでfedora core のRPMに入っていたのを参考に作成。
#!/bin/sh
#
# icecast This shell script takes care of starting and stopping
# the icecast multimedia streaming systen.
#
# chkconfig: - 85 15
# description: icecast is a multimedia streaming daemon. It is used to \
# relay and offer multimedia streaming content.
# processname: icecast
# pidfile: /var/run/icecast/icecast.pidDAEMON=/usr/local/bin/icecast
CONFIGFILE="/usr/local/etc/icecast.xml"# Source function library.
. /etc/rc.d/init.d/functions[ -x $DAEMON ] || exit 0
# See how we were called.
case "$1" in
start)
# Start daemon.
echo -n $"Starting icecast streaming daemon: "
daemon "$DAEMON -b -c $CONFIGFILE > /dev/null"
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/icecast
;;
stop)
# Stop daemon.
echo -n $"Shutting down icecast streaming daemon: "
killproc icecast
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/icecast
;;
status)
status icecast
RETVAL=$?
;;
restart)
$0 stop
$0 start
;;
reload)
echo -n $"Reloading icecast: "
killproc icecast -HUP
RETVAL=$?
echo
;;
condrestart)
[ -f /var/lock/subsys/icecast ] && restart || :
;;
*)
echo $"Usage: $0 {start|stop|status|restart|reload}"
RETVAL=1
;;
esacexit $RETVAL
これを/etc/rc.d/init.d/icecastに保存して
# chmod 755 /etc/rc.d/init.d/icecast
起動してみる
# /etc/rc.d/init.d/icecast start
再起動時にも自動起動するには
# chkconfig --add icecast
# chkconfig icecast on
次回はwinamp+edcastとの連携
<2009/09/14 追記>
Icecast Serverに接続するクライアントユーティリティIceSのコンパイルとインストールを書いたのでそちらの記事も参考に。