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.rpmをVineSeedPlus?から取得してリビルド&インストール
$ 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本体のインストール †
$ 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にアクセスしてみる。