PeerCast と Ices2 による放送の方法
これは Ogg Vorbis ストリームの放送を Linux 上の PeerCast と ices 2.x. (aka ices2) を使っておこなう方法の解説です。
ステップ0: 用意するもの
Linux サーバ
PeerCast バージョン 0.109 以上 の Linux 用バイナリ。これより古いバージョンは動きません
# オーディオデータは OggVorbis 形式のものを用意してください。今のところ ices2 は MP3 形式のデータを扱うことはできません(少なくとも "playlist" モードでは)。ファイルを MP3 から OggVorbis に変換する必要があるなら、[WWW]MP32Ogg がおすすめです。
デフォルトの HTTP ハンドシェイクの代わりに ICE ハンドシェイクを使うように変更した ices2。こっちからダウンロードできます(私が CrapRadio で使っているやつです)。
ステップ1: ディレクトリの準備
ファイルはどこに置いてもさして変わりはありません。私の場合、crapradio というディレクトリを用意し、その中にogg(OggVorbis ファイルの置き場所)、peercast、icesという3つのサブディレクトリを作成しています。私と同じようにする必要はありませんが、ディレクトリはきちんと整理しておいた方が後で管理がラクです。
ステップ2: PeerCast のインストールと設定
「Linux で PeerCast を設定する」を参照してください。
ステップ3: ices2 のインストール
ステップ0のリンク先に置いてある ices2 アーカイブの使用が前提です。まずアーカイブを Linux マシンにダウンロードして、ラジオソフトウェア用のディレクトリに展開してください。
cd /path/to/my/radio
tar xfvz /path/to/ices2-ice.tgz
アーカイブを展開すると、ices2-ice というディレクトリが作成されます。その中にバイナリファイルices-ice と サンプル設定ファイル ices.xml が入っています。
ステップ4: ices2 の設定
ices2 の設定はすべて ices.xml に記述します。この設定ファイルは私が実際に CrapRadio で使用しているものです(もちろんパスワードだけは変更してあります)。ices.xml は自己説明的なので、あまり解説する必要もないでしょう。ひとつ憶えておいた方が良いことは、instance ブロックを複数記述することで、同じストリームを同時に複数のサーバ/ポート/マウントポイントに異なる音質設定で送信できるということです。
ステップ5: playlist の作成
ices2 を playlist モードを動かすためには、playlist ファイルを用意しておかなければなりません。このファイルは ices.xml から参照されます。このファイルは ices2 がストリーミングに使用するファイルの単純な一覧です。前述のアーカイブには、playlist ファイルを作成し直した後、動作中の ices プロセスに HUP シグナルを送り playlist の再読み込みをさせるためのシェルスクリプトが含まれています。playlist の作成にこのスクリプトを利用することができますが、その際、OggVorbis ファイルの置かれたパスなどを修正する必要があるはずです。
ステップ6: ices2の起動
まず PeerCast を起動したら、ices ディレクトリで次のコマンドを実行して、ストリーミングを開始できます。
./ices-ice ices.xml
起動と同時にバックグラウンドで実行させたいときは、次のようにします。
./ices-ice ices.xml &
混乱の原因となるので、とりあえず console logging 機能は ices.xml で無効にしておきましょう。
ステップ7: チャンネルの動作確認
Web ブラウザで http://yourmachine:7144 (PeerCast のポート番号を変更しているときは、その番号)を指定し、PeerCast の Web インターフェースにアクセスしてみましょう。ログイン後 "Relayed Channels" を見るとあなたのストリームが表示されているはずです。表示されていなければ、どこかでミスをしています。
トラブルシューティングには、ice2 を console logging モードで動かしてみることをおすすめします。トラブルの内容が表示されるはずです。もうひとつの方法は、そう、次のようにして ices.log を確認することです。
tail -f ices.log
よくあるトラブルの原因はパスワード、ポート番号、IP アドレスなどの間違いです。libvorbis を通じて ices2 で使われる OggVorbis コデックは時々、指定したオーディオパラメータ(チャンネル、周波数、その他)によってはうまく動かない場合があります。
まとめ
Linux 上でライブ放送用の設定をするのは困難かもしれません。Linux マシンにサウンドカードが付いてるなら、?DarkIce など利用できるパッケージがたくさんあります。もしあなたがあまり運の良い方でなければ、ices2 などで playlist によるストリーミングだけに止めておいた方が無難です。今のところ、ices2 の設定もやや面倒ですが、これは ices2 がまだ開発中であり正式にリリースされたものではないためです(Icecast2 も同様です)。ただし、一旦動き出してしまえば、順調に動作します。もうすぐ Ices2 は正式リリースされ、もっと多くのドキュメントやコンパイル済みノバイナリも入手できるようになることでしょう。
-- HendrikMans
(c) 2002-2006 peercast.org