RedHat Linux 9のファイルサーバに以下のような構成でストリーミングサーバを構築したので記録.
- icescast2.2.0
- ices0.4(--with-perl --with-lame)
- Perl+MySQLによるリクエスト機能付プレイリスト編集スクリプト
[参考URL]
http://www.icecast.org/
http://lame.sourceforge.net/
構築するまでの流れみたいなもの.途中引っかかったところも多い.
- ファイルサーバのmp3ファイルをストリーミングで流しっぱなしにしようと構築を決意.
- 検索でicecast+shoutが多く引っかかるので,それで作ることに.
- icecastの公式サイトに行くと,icecast2というものがあり,検索するとicecast2+icesという構成が新しいスタイルであると知る.これで構築しようと決意.
- icecast2+icesだと検索にあまり引っかからない.何とか見つかった情報からインストール開始.icecast-2.2.0+ices-0.4という構成.
- icecast2のコンパイルに失敗する.icecast+shoutの構成に変えようかと凹みながら解決法を検索.
- libxml2とlibxsltのライブラリが必要であると検索の結果わかる.
- icecast2のインスコに成功し,ブラウザからアクセス,黒いページにちょっと感動する.
- icesをインスコ,この時は特にオプションを考えなかった.失敗したような気がするのだが覚えていない.
- icecast2とicesの.confファイルを編集.よくわからんかったので解説ページに書いてある項目のみ.
- playlistの作成も解説ページの通り.
- ブラウザからアクセスし,Winampからの接続の成功を確認.音楽が流れてきて感動.
- プレイリストがいじれないことやネトラジみたいにリクエストできないことに不満を感じる.
- 検索した結果,icesでperlモジュールであるices.pmを利用することで動的にプレイリストを編集することが可能であるとわかる.ices.pmを探すが見つからない.実はices.pm.distというファイル名だった.凹む.
- せっかく作るのだからデータの保存にはMySQLを使おうと(バカなことを)考える.この考えが2日以上,頭を痛める結果になる.検索などを利用してPerl+MySQLによるシステムを作る.
- ices.confの編集をしてices.pmを使うようにしたいのだが検索してもices2の情報ばかりで困る.それでもices.confの解説ページを発見する.英語だが(たぶん)何とか理解はできた.
- ices.pmを置く場所に困る.ices.confは/etcディレクトリに置いたのだがices.pmをどこに置けば良いのかわからない.(後でわかったことだが,インスコ後のデフォルトの場所(ices.pm.distがあったところ)に置いておくのが良いらしい)
- icesを起動する.perlをサポートしていないと言われる.
- icesをperlサポートのオプションをつけて再コンパイルする.失敗する.
- 散々悩んで,perlを最新版にしてみたところ,成功する.
- 自作スクリプトのバグ取り,修正に時間を費やす.
- ストリーミングを聴いてるときにbitrateが固定されていないことに気づく.
- 検索すると,何となくicesがlameサポートするようにすれば固定できるのではないかとわかる.
- ices.confを眺めてるとそれっぽい項目を発見,lameをインスコする.確かインストールするときにさらに必要なものが出てきた(*)のだが,それはaptでインストールした.
- bitrateを指定してicesを起動する.確かにbitrateは固定されていた.しかし,CPU負荷も結構あったので当面は再エンコードなしで使うことにした.
(*)vorbis-tools,libvorbis-devel,libogg-devel,細かいことはかなり前のことで忘れたがaptでこれらをインスコすれば依存関係も解決してくれた.図らずもOggファイルも対応したのかも.
(*)libshout-2.0もあったかもしれない.
[参考URL]
http://svn.xiph.org/icecast/trunk/ices0/doc/icesmanual.html
http://www.linux.or.jp/JF/JFdocs/MP3-HOWTO.html#toc11
http://funaori.com/linux/index.php?MP3%A5%B9%A5%C8%A5%EA%A1%BC%A5%E0%A5%B5%A1%BC%A5%D0
http://pc5.2ch.net/test/read.cgi/mysv/1044191589/211
http://phonoscape.ddo.jp/mt/diary/archives/2004/08/2004_08_24_001120.html
http://www-6.ibm.com/jp/developerworks/linux/040319/j_l-cpmp31.html
http://www.bitscope.co.jp/tep/MySQL/quickMySQL.html
http://www2h.biglobe.ne.jp/~hnakamur/technolab/linux/sound/icecast/icecast.htm
http://tomo.ac/goodstream/server/icecast/linux/