mp3のサーバをたてる


1.動機

研究用のコンピュータでは、やはりマシンパワーが欲しいので、 mp3を再生するコンピュータは別にしたい。 ということで、サーバをたてようと思った。

調べたところ何種類かサーバがあったが、 linuxで動くフリーのものがあったので、それを利用することにする。

ちなみにこのシステムの仕組みは、 server側でmp3をエンコードし、ネットワークにストリーミング情報として流す。 そして、その情報をクライアント側で拾って音に直す。 mp3を聞くときに、パワーを使うのはエンコードの部分なので、 その部分を他のマシンでこなすことができれば、 聞いているマシンではメモリを消費するわけでもなく、快適に過ごすことができる。 大嘘でした。パワー食いまくります。 ファイルを集約できる、くらいのメリットしかなさそうです。

というわけで、ストリーミング放送はやめました。でも、mp3ファイルは宝物。


2.ネットワーク状況

プライベートアドレスを持っている2つのコンピュータがある。
ipアドレス 名前
サーバー 192.168.56.20 sango
クライアント 192.168.56.22 galaxy
これから述べるのは、サーバ側の設定の話。 クライアント側は、xmmsでもFreeAmpでもmpg123でも大丈夫。

3.ソフトウエア

icecast+shoutを利用する。 icecastはSRPMとして持ってこれる。 shoutはバージョンがまだ1になっていないためか、tarボールしかない。

icecastはsrpmを使ってインストールする。 設定ファイルはそれぞれ、 icecastは「/etc/icecast/」に、shoutは「/usr/local/icecast/etc」 になる。 設定でデフォルトから変えたのは次の通り。

/etc/icecast/icecast.conf

location Sendai Japan
rp_email kenstar@anet.ne.jp
max_clients 10
max_clients_per_source 10
encoder_password foobar
admin_password foobar
oper_password foobar
hostname 192.168.56.20
server_name 192.168.56.20
reverse_lookups 0
console_mode 3
#alias radiofri http://195.7.65.207:6903

/usr/local/icecast/etc/shout.conf

server_name 192.168.56.20
password foobar
name Sango Music Station
desc Thank you for your access!!
genre Misc
#url http://www.apan.com/
id3 yes
playlist playlist
shuffle yes
daemon yes

次に、プレイリストをつくる。findをつかうのが一番簡単。

find "/windata/mydoc/My Music/MP3/" -name "*mp3" > /usr/local/icecast/etc/playlist

最後に起動する。

/usr/sbin/icecast
/usr/local/icecast/bin/shout


4.感想

ネットワークを利用しているせいか、安定して音楽を聞くことができなかった。 満足のレベルではない。もう少しとぎれたり、 とぎれてもすぐにリカバリーしてくれたりすると嬉しいのだが。

補足

shoutのビットレートを下げてみたら、 かなりいい感じで再生されている。 やはり、ネットワークの空き具合いによって変わってくるようだ。 具体的には、「bitrate」を128000から32000の4/1にした。
参考にしたページ