MP3ストリームサーバ

Posted コメントするカテゴリー: vine

MP3ストリームサーバ

ipodに大量のMP3を入れてランダムで聞いていると楽しい,と偉そうなアメリカ人が論文のような記事を読んだ.ipodを買うほどの情熱はなかったので,家と会社で同じように音楽が聴けるようにと,MP3ストリームサーバをたてることにした.

更新履歴

2005/05/05 icecast-2.2向けに一部修正

構成

ホームページを調べるとicecastとshoutという組み合わせを良く見かけるのだが,うまく行かなかったのでicesを使うことにした.

icecastのインストール

必要環境

aptで以下のパッケージをインストール

  • curl
  • curl-devel
  • libxml2
  • libxslt
  • libvorbis-devel
  • libogg-devel
  • libxml2-devel
  • libxslt-devel

libtheora-1.0-0.alpha4vl1.src.rpmVineSeedPlus?から取得してリビルド&インストール

$ rpm --rebuild libtheora-1.0-0.alpha4vl1.src.rpm
$ su
# rpm -ihv rpm/RPMS/i386/libtheora-1.0-0.alpha4vl1.i386.rpm rpm/RPMS/i386/libtheora-devel-1.0-0.alpha4vl1.i386.rpm

インストール

icecast-2.2.0-1.src.rpmを取得してリビルド&インストール

$ rpm --rebild icecast-2.2.0-1.src.rpm
$ su
# rpm -ihv rpm/RPMS/i386/icecast-2.2.0-1.i386.rpm

設定ファイルの編集

/etc/icecast.xmlを編集する.必要な項目は以下

  • icesからのアクセスに使用するパスワード
    <source-password>xxxx</source-password>
  • 状態を確認するのに使用するパスワード(たぶん?)
    <admin-password>xxxx</admin-password>
  • 使用するサーバアドレス/ポート番号
    <listen-socket>
     <port>xxxxx</port>
     <bind-address>xxx.xxx.xxx.xxx</bind-address>
    </listen-socket>
  • 実行するユーザの指定(コメントをはずす)
    <changeowner>
     <user>takanezawa</user>
     <group>takanezawa</group>
    </changeowner>

サーバの起動

$ icecast -c /etc/icecast.xml

起動の確認は,ブラウザで下記にアクセスをする.

http://<bind>:<port>/admin/stats.xml

ユーザ名とパスワードを入力すると,icecastの状態のXMLが表示される.

icesのインストール

ライブラリのインストール

libshout-2.1.tar.gzを取得し,コンパイル&インストール

$ tar zxvf libshout-2.1.tar.gz
$ cd libshout-2.1
$ ./configure
$ make
$ su
# make install

ices本体のインストール

ices-0.4.tar.gz

$ tar zxvf ices-0.4.tar.gz
$ cd ices-0.4
$ ./configure
$ make
$ su
# make install

設定ファイルの編集

/etc/ices.confを編集する

  • <Hostname>xxx.xxx.xxx.xxx</Hostname>

icecastのホスト名

  • <Port>xxxx</Port>

icecastのポート番号

  • <Password>xxxx</Password>

icecastのパスワード

  • <Name>xxx</Name>

ストリームの名称

  • <File>/path/playlist</File>

ストリームを行うmp3のリストファイルのpathを記述する。

playlistの作成

一行ごとにfullpathでストリームを行うmp3ファイルを記述する。
例えば /usr/local/mp3 以下のmp3ファイルを全てふくめるためには下記の様にして作成する。

$ find /usr/local/mp3 -name *.mp3 -print > filename

ライブラリのコピー

デフォルトではlibshoutのライブラリが/usr/local/libにインストールされる./etc/ld.conf.soを編集しても見つけてくれないので,/usr/libにシンボリックリンクを張る.

# ln -s /usr/local/lib/libshout.so.3.1.0  /usr/lib/libshout.so.3

icesの起動

ices -B -c /etc/ices.conf

確認

xmmsでhttp://hostname:Port/Nameにアクセスしてみる。