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/

にアクセスするとデフォルトの画面が参照できる。

image

起動スクリプトがどっかにあるだろうと探したけど見つからない。

なので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.pid

DAEMON=/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
    ;;
esac

exit $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のコンパイルとインストールを書いたのでそちらの記事も参考に。

コメント

  1. 初コメントです。
    大変参考になります。
    この記事の中で、リンクしている
    参考にしたWebサイトの記事3ページ目の中で、「Ices」とか言うものもあるようですが、どうやったらいいのかなー^^

    返信削除
  2. コメントありがとうございます。
    単純にコンパイルしただけでは、Icesコマンドは出てこないですね。
    別途インストールが必要かも。
    調べてみますのでもう少しお待ちを・・・

    返信削除
  3. 実際に「IceS」のインストールを記事にしたので、そちらを参考にどうぞ。

    http://se-suganuma.blogspot.com/2009/09/linuxicecast-serverices.html

    返信削除

コメントを投稿

このブログの人気の投稿

【.NET】DataGridViewを選択した際に背景色を変更しない

Can't open PID file /var/run/nginx.pid (yet?) after start: Too many levels of symbolic links

【PostgreSQL】ROWNUMのように行番号(現在行)を取得するROW_NUMBER