icecast2を使ったストリーミング鯖の建て方

今回はいつもよりちょっと長いです。

  • icecast2のインストール

$ sudo apt-get install icecast2

  • icecast2の設定

$ sudo cp /etc/default/icecast2 /etc/default/icecast2.default
$ sudo emacs /etc/default/icecast2

編集する箇所
ENABLE=true

  • icecast.xmlの設定

$ sudo cp /etc/icecast2/icecast.xml /etc/icecast2/icecast.xml.org
$ sudo emacs /etc/icecast2/icecast.xml
パスワード"hackme"の変更は自由です。
私は家だけなのでデフォルトのままにしました。

hackme
hackme

hackme

localhost



8000




nobody
nogroup

  • icecast起動(今回は必須です)

$ sudo /etc/init.d/icecast2 start

ブラウザで
http://localhost:8000

または
http://192.168.#.###:8000
[192.168.#.###]は PC の IPアドレス

で確認してみる。

あがらない場合は、icecast.xmlのhostnameあたりや/etc/hostsの確認。
icecast.xmlの設定を初めからやり直し。icecast.xml.orgを戻すのが簡単。

  • icecastの停止

# sudo /etc/init.d/icecast2 stop
icecast.xmlファイルを変更するときは「停止」が必要です。

  • icesのインストール

$ sudo aptitude install libc6 libc6-dev
$ sudo aptitude install gpp
$ sudo aptitude install g++
$ sudo aptitude install file
$ sudo aptitude install libshout3 libshout3-dev
$ sudo aptitude install libxml2 libxml2-dbg libxml2-dev libxml2-utils
$ sudo aptitude install libxml1 python-libxml2
$ sudo aptitude install make

$ sudo mkdir src
$ cd src
$ sudo wget http://downloads.xiph.org/releases/ices/ices-0.4.tar.gz
$ sudo tar xzvf ices-0.4.tar.gz
$ cd ices-0.4
$ sudo ./configure

とすると

XML : yes ← noだと以後のmake install で作られた実行ファイルが機能しない。
Python : no
Perl : no
LAME : no
Vorbis : no
MP4 : no
FLAC : no

となり、とりあえず順調。

もし

XML :no

ならばlibxml1、 libxml2系のライブラリが不足してると思われる。探して入れる。

ちなみに僕は、etcやhomeなどがあるディレクトリ階層と同じ階層にsrcというディレクトリを作ってそこにぶちこみました。

$ sudo vi /etc/apt/sources.list

deb http://debian-multimedia.org/ lenny main
deb-src http://debian-multimedia.org lenny main

$ sudo wget http://www.debian-multimedia.org/pool/main/d/debian-multimedia-keyring/debian-multimedia-keyring_2008.10.16_all.deb ←この時は最新版がこれだった気がします

$ sudo dpkg -i debian-multimedia-keyring_2008.10.16_all.deb

なんかしらんが念のため最新版にするためにアップデート
$ sudo aptitude update
$ sudo aptitude upgrade

そうするとlameのパッケージが発見できたのでインストする

$ sudo apt-get install lame liblame-dev

$ sudo ./configure --with-lame

とすると

XML : yes
Python : no
Perl : no
LAME : yes
Vorbis : yes
MP4 : no
FLAC : no

となり、準備完了

  • icesのインストール

$ make
たくさんのメッセージが表示されます(驚かないように)。

# make install
それなりのメッセージが表示されます。

そして、特に問題もなく終わりました。

  • ices設定

設定ファイルのテンプレートは

/usr/local/etc/ices.conf.dist

# cp /usr/local/etc/ices.conf.dist /usr/local/etc/ices.conf

# vi /usr/local/etc/ices.conf

* 編集または設定をした箇所(デフォルトのままの箇所もあり)


/home/music/playlist.txt

1

1


icecast側で設定したパスワード
/ices
My Icecast Server
192
1

  • ices起動前の準備

icesの起動の前にプレイリストを作成しておきます。
便利なコマンドでプレイリストが作れるので紹介っと

まずテキストファイルを作る。

$ sudo emacs /home/music/playlist.txt

例えば /home/music 配下にアーティスト名のディレクトリがたくさんある場合

$ sudo find /home/music/ -name *.mp3 | sort >> playlist.txt

とか
$ sudo find ./ -name *.mp3 -print | sort >> playlist.txt

でテキストファイルに絶対パスの書かれたプレイリストができるので、

  • icesの起動

# ices -F /home/music/playlist.m3u -c /usr/local/etc/ices.conf

 とか
# ices -F /home/music/playlist.txt -c /usr/local/etc/ices.conf

とすると
winampとかで

http://192.168.#.###:8000/ices

で開くと聞けました。

参考サイト

http://dourakunohibi.cocolog-nifty.com/blog/2009/05/debian50icecast.html
http://d.hatena.ne.jp/n9d/20080110/1199972191